C ++的基本类型列表

时间:2011-06-27 12:28:50

标签: c++

是否有一个函数可以以某种形式(List)返回(在元编程编译期间)所有可用基元类型的列表? 感谢

3 个答案:

答案 0 :(得分:5)

没有 - 这种运行时内省在C ++中不常见也不可行(你会用运行时函数做什么,它会为你提供实际类型名称的列表需要首先编写代码吗?)。

该语言支持的原始类型是:

bool
(unsigned,signed) char
wchar_t
(unsigned) short
(unsigned) int
(unsigned) long
[(unsigned) long long]

float
double
[long double]

个别编译器支持更多,并且许多类型通常可用,但是通过类型定义上述原始类型(即uint32_t等)来实现。

有关完整列表,请查看语言规范。

答案 1 :(得分:4)

您可以在C ++标准§3.9.1中找到基本类型的完整列表:

char

signed char
short int
int
long int

unsigned char
unsigned short int
unsigned int
unsigned long int

wchar_t

bool

float
double
long double

void

请注意,普通charsigned charunsigned char是三种不同的类型。 C ++标准还定义了size_tptrdiff_t(虽然它们不是基础)。

您可以期望每个符合标准的编译器都支持所有这些类型。每个特定的编译器都可以支持更多支持作为扩展的其他类型。

答案 2 :(得分:1)

不正确的问题。

什么是类型列表? std::list<T>?还是数组?

如果它是std :: list那么什么是T? T =“std :: string”?

所有类型的列表在C ++标准中描述。

bool
signed/unsigned char
signed/unsigned short int
signed/unsigned int
signed/unsigned long
size_t
wchar_t
float
double