使用模板变量c ++进行转换

时间:2014-12-15 11:41:37

标签: c++ templates type-conversion

除了以下模板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,只是具有不同的大小?

0 个答案:

没有答案