以下代码适用于 gcc 2.9 至 4.4 版本,但不适用于 4.5 版本:
struct Pass {
};
int main(void){
Pass **passes = new ( Pass (*[ 10 ]) );
}
gcc 4.5 的具体错误消息是:
prob.cc: In function ‘int main()’:
prob.cc:6:31: warning: lambda expressions only available with -std=c++0x or -std=gnu++0x
prob.cc:6:38: error: no matching function for call to ‘Pass::Pass(void (&)())’
prob.cc:2:1: note: candidates are: Pass::Pass()
prob.cc:2:1: note: Pass::Pass(const Pass&)
添加请求的标志可以消除初始警告,但不能解决问题。有人可以解释如何解决这个问题吗?这是来自我正在维护的一些晦涩的 C++ 代码,我只了解有限的 C++。
Pass** passes = new Pass*[10];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)