質問: Menu::create(MakeButton, NULL); ButtonMenu->setPosition(40,100); this->addChild(ButtonMenu); [エラー内容] 1auto scenenameで始まる行について variable 'aa' cannot be implicitly caputred in lambda with no caputure-default specsfied 2auto BBBで始まる行について No matching function for call to 'create' 以上
回答: こんにちは。 > > variable 'aaa' cannot be implicitly caputred in lambda with no caputure-default specsfied > > > の`'aaa'`は`'aa'`の間違いでは? もし、そうなら、`{`を`&{`と書けば通るかも知れません。 ラムダ式はキャプチャの指定が必要です。 【追記】 TransitionFade::create()は2つあるようですが、こちらを呼び出している印象ですね。これの第2パラメータはSceneクラスへのポインタです。 それに対して、 StringUtils::format()の戻り値はstd::stringですね。型違いますので呼び出せません。 もしかして、AA1Scene, AA2Scene, AA3Scene, ... のようなシーンクラスを定義されているのでしょうか? そして、それらを生成したいということですか? C++はC#などと異なり動的に生成した型名を使うことはできません。 aaに値を設定する場所があると思います。そこで、`Scene* aa=AA1Scene::create();`のようなイメージでシーンを生成して、`MenuItemImage::create()`で`TransitionFade::create()`に渡すことが考えられます。 もし、aaの設定時に定数ではなく式を使っているようでしたら、上記手法は使えませんので、諦めてswitch-caseで分岐する等の対策が必要になります。