读书人

c++ 结构体初始化解决思路

发布时间: 2012-04-19 14:36:43 作者: rapoo

c++ 结构体初始化
这是结构体:

C/C++ code
const struct configcommandinfo {  const char *name;  void (*fn)(adns_state ads, const char *fn, int lno, const char *buf);} configcommandinfos[]= {  { "nameserver",        ccf_nameserver  },  { "domain",            ccf_search      },  { "search",            ccf_search      },  { "sortlist",          ccf_sortlist    },  { "options",           ccf_options     },  { "clearnameservers",  ccf_clearnss    },  { "include",           ccf_include     },  {  0                                   }};


放在
C/C++ code
class A{    A(){};    ~A(){};private:configcommandinfo  configcommandinfos[];}


怎么做呢?

[解决办法]
我觉得现在需要做的是等待,等c++11普及,就可以了
[解决办法]
class A{
A():configcommandinfos({ \
{ "nameserver", ccf_nameserver }, \
{ "search", ccf_search }, \
{ "sortlist", ccf_sortlist }, \
{ "options", ccf_options }, \
{ "clearnameservers", ccf_clearnss }, \
{ "include", ccf_include }, \
{ "domain", ccf_search }, \
{ 0 } \
}){}
private: configcommandinfo configcommandinfos[8];
};
gcc 4.6.2 没问题
[解决办法]
扩展初始值设定列表只在 -std=c++0x 或 -std=gnu++0x 下可用 [默认启用]
[解决办法]
探讨

引用:

class A{
A():configcommandinfos({ \
{ "nameserver", ccf_nameserver }, \
{ "search", ccf_search }, \
{ "sortlist", ccf_sortlist },……


vs2008……

读书人网 >C++

热点推荐