除了以下模板struct
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<N> m_aNumber
,并希望在方法中给出一个值。但是,在这种情况下,值必须是浮点数。
所以很自然地我添加了一行像
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.. );
^
将它从float转换为我的自定义类型的最佳方法是什么?它将是一个int,只是具有不同的大小?