C++ 使用模板变量c++;

C++ 使用模板变量c++;,c++,templates,type-conversion,C++,Templates,Type Conversion,除了以下模板结构 template <int N> struct mytype { using type = typename std::conditional<N <= 8, std::uint8_t, typename std::conditional<N <= 16, std::uint16_t, typename std::conditional<N <= 32,

除了以下模板结构

template <int N>
struct mytype {
    using type = typename std::conditional<N <= 8, std::uint8_t,
                 typename std::conditional<N <= 16, std::uint16_t,
                 typename std::conditional<N <= 32, std::uint32_t,
                 typename std::conditional<N <= 64, std::uint64_t,
                 typename std::uintmax_t>::type>::type>::type>::type;
};
模板
结构mytype{

使用type=typename std::conditionalis将浮点赋值给
mytype
而不是
typename mytype::type
是有意的吗?如果是,当然需要一个合适的赋值运算符或构造函数。好吧,听起来你的
m\u aNumber
应该是
typename mytype::type
mytype
只是一个空结构。一个问题是,
mytype
是一个特定的类型,它不同于
mytype::type
。试图强制转换到
mytype
与要求编译器创建一个
mytype
对象实例是一样的。@TreeOfLife
m_aNumber = (mytype<N>) (..my float value..);
Error: no matching function for call to 'mytype<32>::mytype(float)'
     m_aNumber = (mytype<N>) (..my float value.. );
               ^