C++ 11の構文に関する簡単な質問。 (sourceから1に減少)、サンプルコード、私が知りたいのです中カッコでctorを呼び出す
struct Wanderer
{
explicit Wanderer(std::vector<std::function<void (float)>> & update_loop)
{
update_loop.emplace_back([this](float dt) { update(dt); });
}
void update(float dt);
};
int main()
{
std::vector<std::function<void (float)>> update_loop;
Wanderer wanderer{update_loop}; // why {} ???
}
があり、それはそれはどちらも初期化子リストであるWanderer wanderer{update_loop};
ような中括弧で可能なコールコンストラクタ、また均一に初期化することができますどのように。これは何ですか?
しかし、これは一様な初期化です。中カッコを使ってコンストラクタを呼び出すことができますが、その型の 'std :: initializer_list'を取っているコンストラクタが常に優先されます。 – chris
'//なぜ{} ???' - 良い質問です。これは 'ワンダラーワンダラー(update_loop)'よりもこれを好む理由ではない。 – ipc
@ipc場合によっては、最も厄介な解析を避けることができます。 – juanchopanza