C++ C++;复合文字
在C中,我可以这样做:C++ C++;复合文字,c++,c,inline,compound-assignment,C++,C,Inline,Compound Assignment,在C中,我可以这样做: ppackage ppnull() { return (ppackage) { .type = NULL } } 但是,在C++中,我会得到语法错误。我使用GNUg++编译器。是否有启用此功能的开关?使用c++11可以使用初始值设定项列表: struct ppackage { void* type; }; ppackage ppnull() { return {nullptr}; } 或者只是 ppackage ppn
ppackage ppnull() {
return (ppackage) {
.type = NULL
}
}
但是,在C++中,我会得到语法错误。我使用GNU
g++
编译器。是否有启用此功能的开关?使用c++11
可以使用初始值设定项列表:
struct ppackage
{
void* type;
};
ppackage ppnull()
{
return {nullptr};
}
或者只是
ppackage ppnull()
{
return {};
}
这不是标准C++,请做<代码> pPcP={};返回p或just
返回{}
如果你有C++11.Putingnullptr
没有必要现在ppackage有一个匿名联合,其中有许多结构。在那里我必须有{.type='f',.fetch={“home”}
@imacake,好吧,这对联合不起作用,你必须更改语法或重新考虑你的设计(使用构造函数,但它会使你的结构与C
不兼容)。你应该告诉我,你能做什么,我才能提供更完整的解决方案。