Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 获取C+中表达式的类型+;包括参考资料_C++_Types_Reference_Expression_C++14 - Fatal编程技术网

C++ 获取C+中表达式的类型+;包括参考资料

C++ 获取C+中表达式的类型+;包括参考资料,c++,types,reference,expression,c++14,C++,Types,Reference,Expression,C++14,如何获取包含引用的表达式的类型?因此,下面的伪代码将在所有3次中给出不同的结果 int a = 5; std::cout << type(a) << std::endl; int &b = a; std::cout << type(b) << std::endl; int &&c = 5; std::cout << type(c) << std::endl; inta=5; std::cout如果您

如何获取包含引用的表达式的类型?因此,下面的伪代码将在所有3次中给出不同的结果

int a = 5;
std::cout << type(a) << std::endl;
int &b = a;
std::cout << type(b) << std::endl;
int &&c = 5;
std::cout << type(c) << std::endl;
inta=5;

std::cout如果您只需要查看推断的类型,一个技巧是创建无法实例化的模板:

template<typename T> struct TD;
TD<decltype(a)> tda;
TD<decltype(b)> tdb;
TD<decltype(c)> tdc;
模板结构TD;
TD-tda;
TD-tdb;
运输署贸易发展局;

这将导致编译错误,告诉您
a
/
b
/
c

如果您只需要查看导出的类型,一个技巧是创建无法实例化的模板:

template<typename T> struct TD;
TD<decltype(a)> tda;
TD<decltype(b)> tdb;
TD<decltype(c)> tdc;
模板结构TD;
TD-tda;
TD-tdb;
运输署贸易发展局;

这将导致编译错误,告诉您
a
/
b
/
c

的类型是出于什么目的?您想要解决的实际问题是什么?为什么需要带有引用的类型?请阅读并思考你的问题可能是什么。@Someprogrammerdude我只是在学习语言并试图弄清楚确切的表达式类型:)你是说实际上根本不需要区分这些吗?@ledonter有,但在运行时不像你想实现的那样。您所能拥有的最好功能(不依赖于某种特定于编译器的扩展)是
typeid
@raket1111可能是一些特定于实现的内部函数/标志?用于什么目的?您想要解决的实际问题是什么?为什么需要带有引用的类型?请阅读并思考你的问题可能是什么。@Someprogrammerdude我只是在学习语言并试图弄清楚确切的表达式类型:)你是说实际上根本不需要区分这些吗?@ledonter有,但在运行时不像你想实现的那样。您所能拥有的最好功能(不依赖于某种特定于编译器的扩展)是
typeid
@raket1111可能是一些特定于实现的内部函数/标志?