在C中,我可以这样做:

ppackage ppnull() {
    return (ppackage) {
        .type = NULL
    }
}


但是,在C ++中,我得到语法错误。我使用GNU g++编译器。是否有启用此功能的开关?

最佳答案

使用c++11可以使用初始化列表:

struct ppackage
{
    void* type;
};

ppackage ppnull()
{
    return {nullptr};
}


要不就

ppackage ppnull()
{
    return {};
}

关于c++ - C++复合文字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9436480/

10-11 00:54