2012-02-24 13 views
0

在C我可以做到這一點:C++複合文字

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

然而,在C++中,我得到的語法錯誤。我使用GNU g++編譯器。有沒有開關來啓用它?

+0

這不是標準的C++,做'ppackage P = {};返回p;'或者只是'return {};'如果你有C++ 11。 – 2012-02-24 19:09:53

回答

2

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

struct ppackage 
{ 
    void* type; 
}; 

ppackage ppnull() 
{ 
    return {nullptr}; 
} 

或者只是

ppackage ppnull() 
{ 
    return {}; 
} 
+0

把'nullptr'放在那裏是不必要的 – 2012-02-24 19:11:50

+2

@SethCarnegie,好吧,但我認爲第一個更清晰 – Lol4t0 2012-02-24 19:13:50

+0

現在ppackage有一個anonymouse聯盟,裏面有許多結構。在那裏我必須有'{.type ='f',.fetch = {「home」}}' – imacake 2012-02-24 19:19:27