C++ 获取C+中表达式的类型+;包括参考资料
如何获取包含引用的表达式的类型?因此,下面的伪代码将在所有3次中给出不同的结果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如果您
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可能是一些特定于实现的内部函数/标志?