αλε*_*λυτ 4 c++ initialization
根据问题string array [] =""是什么; 意思是,它为什么有效?我想问一下下面代码中s1和s2之间的区别:
int main() {
const char* s1 = { "Hello" }; // strange but work as followed
const char* s2 = "Hello"; // ordinary case
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么允许额外的花括号?任何对C++标准的引用都会很有用.
eca*_*mur 11
在C++ 98(和C++ 03)中,这非常简单; 在第8.5条中:
14 - 如果
T
是标量类型,则表单的声明T x = { a };
等同于T x = a;
在C++ 11中,列表初始化(8.5.4p3)涵盖了这一点:
[...]如果初始化列表具有E类型的单个元素且T不是引用类型或其引用类型与E引用相关,则从该元素初始化对象或引用[...]
我认为这与使用大括号初始化标量是一样的问题.
归档时间: |
|
查看次数: |
443 次 |
最近记录: |