c++ - c++ 中的对象主要表达式是一种类型吗?
问题描述
我知道 aprimary expression
只是文字,this,(表达式),id-expression。并且根据C++ 主要表达式 - 是否是主要表达式?,主要表达式可以定义为
在某种意义上说它们是原子的,它们不能被进一步分解
那么可以将泛型类型分解为任何其他表达式吗?(因此本身不会是一个主要的表达方式)。这就是编译器所说的,泛型类型不是主要表达式,这意味着它可以进一步分解:
template <class T>
T foo(T param)
{
return T;
}
这使:
error: expected primary-expression before ‘;’ token
return T;
所以如果类型T
不是主要的(根据编译器),它会分解成什么?
解决方案
您清楚地知道,有一个被认为是主要表达式的列表,而 type 根本不是其中之一。在表达式的意义上,类型的分解是没有意义的,因为类型不能被视为表达式。
推荐阅读
- azure-ad-b2c - “推荐”登录用户流可用?
- javascript - 单击提交按钮时,onSubmit 未触发,因为触发了 onBlur
- linux - 命令以了解文件夹中挂载的内容
- c# - 如果我多次复制,WM_DRAWCLIPBOARD 和 WM_CHANGECBCHAIN 会占用大量内存。在我的程序 C#
- bash - 终端窗口大小变化时如何触发提示重绘?
- mysql - MySQL两列复杂查询实现聊天
- sql-server - SSRS 参数值列表始终为空
- flutter - 如何在飞镖中将时间戳字符串从 24 小时格式转换为 12 小时格式?
- visual-studio-code - 无法从 VSOnline 克隆 Azure DevOps 存储库
- windows - CScript 错误:找不到脚本“C:\Program Files (x86)\Nagios\NCPA\plugins\check_files.vbs”的脚本引擎“VBScript”