C++复合文字

C++ Compound literal

本文关键字:文字 复合 C++      更新时间:2023-10-16

在C中,我可以做到这一点:

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

然而,在C++中,我会遇到语法错误。我使用GNU g++编译器。有开关可以启用吗?

使用c++11可以使用初始值设定项列表:

struct ppackage
{
    void* type;
};
ppackage ppnull()
{
    return {nullptr};
}

或者只是

ppackage ppnull()
{
    return {};
}