是否有一个函数可以以某种形式(List)返回(在元编程编译期间)所有可用基元类型的列表? 感谢
答案 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
请注意,普通char
,signed char
和unsigned char
是三种不同的类型。 C ++标准还定义了size_t
和ptrdiff_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