C++中的文字真的可以评估吗?

j_b*_*rks 2 c++ evaluation literals operand

总是我的理解是,l值必须进行评估,但是有一些明显且容易解释的原因.标识符表示存储区域,该值位于该存储中,必须进行检索.那讲得通.但是需要评估文字的程序(例如,整数21)对我来说并没有多大意义.价值就在那里,你能得到多少明确的答案?好吧,除了为无符号或其他后缀添加U. 这就是为什么我对需要评估的文字感到好奇,因为我只在一个地方看过这个.大多数书籍也将术语(如"初级表达","操作数"或"子表达式"等)切换到线条开始模糊的位置.在这段时间里,我还没有看到对这一特定事物的明确解释.这似乎浪费了处理能力.

Che*_*Alf 6

普通文字只需要在编译期间由编译器进行评估.

也可以在运行时评估用户定义的文字.例如,在包含<string>标题并使其...s文字可由指令使用之后using namespace std::string_literals;,则"Blah"s是用户定义的文字类型std::string."Blah"编译时,编译器会对该部件进行评估.转换为std::string涉及动态分配的转换必然发生在运行时.