Nio*_*ium 4 c++ struct anonymous initialization
说,我有
struct Foo
{
char a;
char b;
};
void bar(Foo foo);
Run Code Online (Sandbox Code Playgroud)
初始化结构并将其传递给函数的最简洁方法是什么?理想情况下,我想写一些类似的东西
bar(Foo = {'a','b'});
Run Code Online (Sandbox Code Playgroud)
如果 Foo 是一个工会呢?
UPD:我真诚地道歉,这个问题应该只与 C++03 相关。此外,在这种特殊情况下,应避免远离 POD(该代码适用于嵌入式系统,因此需要更短的字节码)。vonbrand,感谢 C++11 的回答。
在 C++ 11 中,您可以编写:
bar({'a', 'b'});
Run Code Online (Sandbox Code Playgroud)
或者:
bar(Foo{'a', 'b'});
Run Code Online (Sandbox Code Playgroud)
(请参阅 Stroustup 的C++11 常见问题解答)。
g++-4.8.2 接受这个没有抱怨只有当你给它时-std=c++11,clang++-3.3 给出一个错误,除非-std=c++11
| 归档时间: |
|
| 查看次数: |
2403 次 |
| 最近记录: |