今天当我阅读C++ Primer时,它说类内初始化程序不能使用()我在Stackoverflow上搜索并在这里找到类似的问题.并且接受的答案说:原因可能是声明之间有一个模糊的成员函数和类型成员的定义.但我不完全同意他.我尝试以下代码:
struct Sales_data
{
int i(5); //this line can't be regard as a function
};
Run Code Online (Sandbox Code Playgroud)
但是编译器仍然抱怨.谁能告诉我为什么.\编译器:clang ++版本:3-4
语言不允许这样做.原因是存在无法从函数声明中消除歧义的情况:
struct foo
{
int bar();
};
Run Code Online (Sandbox Code Playgroud)
因此,不是通过允许有时工作来复制整个最令人烦恼的解析惨败(),而是彻底禁止.
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |