假設我需要創建一個長度爲N
位的成員的模板,其中N
是模板參數。我當然可以定義這樣的東西是否有大小爲模板參數的標準整數類型?
#include <cstdint>
template<int N>
struct sized_uint {};
template<> struct sized_uint<8> { typedef uint8_t type; };
template<> struct sized_uint<16> { typedef uint16_t type; };
template<> struct sized_uint<32> { typedef uint32_t type; };
template<> struct sized_uint<64> { typedef uint64_t type; };
然後在我的模板中使用它,例如,的函數:
template<int N> void myfunc(typename sized_uint<N>::type);
但是是否有任何標準類型像上面在C++中的任何版本中定義sized_uint
?
看看這個http://stackoverflow.com/questions/31334291/select-an-integer-type-based-on-template-integer-parameter/31334843#31334843,和我相當輝煌的答案; =) 。你可以這樣做。 – Bathsheba