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.. );
^