声明引用是常规指令还是第二个名称?

iam*_*ind 0 c++ reference

我写的时候

T &t = obj;
Run Code Online (Sandbox Code Playgroud)

这被认为是一个指令(生成机器代码)还是仅仅是第二个名称obj

Jam*_*nze 6

除了生成的代码之外,我认为标准不会使用word指令.该行T &t = obj;是一个声明声明,是一个定义; 这是一个声明,但事情也是如此using std::string;.它可能会也可能不会导致生成可执行代码,具体取决于很多事情.

另外(因为你的头衔):没有任何作业T &t = obj;.


NPE*_*NPE 5

那要看.如果优化器能够T完全消除,那么就不会生成任何机器代码.否则,可能会有.

如果您真的关心某些特定代码的答案,请按照通常的方式编译代码(相同的编译器,相同的优化选项等),但让编译器生成汇编代码.然后检查汇编代码以找出答案.