【发布时间】:2011-10-04 17:11:44
【问题描述】:
我希望编写一个模板结构foo 使得foo<N>::value_type 是最接近N 的大小整数(向上舍入)。例如foo<32>::value_type => uint32_t、foo<33>::value_type => uint64_t 和foo<72>::value_type => uint64_t。
为此,我需要一种优雅的方法来为一系列值提供foo 的部分特化,例如,1 <= N <= 8 以返回 uint8_t 等等等等。有没有一种方法可以做到这一点,而不必专门化从 0 到 64 的所有内容。
【问题讨论】:
-
不会有直接的方法(就像 Mark 说的那样),但可能有一些巧妙的模板元编程技巧。好问题,等着看答案。
标签: c++ templates template-meta-programming