特定于gcc 4.5的C++数组创建问题

Nat*_*eld 3 c++ gcc new-operator c++11

以下代码适用于gcc版本2.9到4.4,但不适用于版本4.5:

 struct Pass {
 };

 int main(void){
 Pass **passes = new ( Pass (*[ 10 ]) );
 }
Run Code Online (Sandbox Code Playgroud)

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&)
Run Code Online (Sandbox Code Playgroud)

添加请求的标志会使初始警告无效,但不能解决问题.有人可以解释如何解决这个问题吗?这是我正在维护的一些不起眼的C++代码,我只知道有限数量的C++.

Mur*_*los 5

Pass** passes = new Pass*[10];
Run Code Online (Sandbox Code Playgroud)