Nothing is impossible.
esv::ux16 is 16-bit unsigned integral type, just like unsigned short int, but esv::ux16 is a class type, aka esv::class_type, which makes esv::ux16 have advanced object-oriented features, such as member functions, and let it extendible for more features.
esv::ux16 - esv::u16, the class type of esv::u16.
#include <esvcpp/core.hpp> int main() { constexpr esv::ux16 x = 65535u; esv::print(x, x(), x.value()); // 65535 65535 65535 }