2016-03-20 4 views
0

私はFacebookのProxygenからソースコードを読んでいた、と私は私が前に見たことがなかったいくつかの構文を気づい:これはどの構文ですか?std :: thread t([&](){...});

std::thread t([&]() { 
    server.start(); 
}); 

出典:https://github.com/facebook/proxygen/blob/master/proxygen/httpserver/samples/push/PushServer.cpp

が匿名メソッドですが? &の値は何ですか、それはスレッドですか?

匿名の方法であれば、どのようにserverにアクセスできますか?それは範囲外ではありませんか?

+1

here詳細を読むことができます

参照

によって

をラムダの本体で使用ODR-すべての自動変数をキャプチャしています。 '[&]'は、現在のスコープ内の変数が参照(この場合は 'server')によって取得されることを意味します。 –

+0

そのa *ラムダ関数*。 http://en.cppreference.com/w/cpp/language/lambda – Galik

+0

ありがとうございます。世話をして受け入れます。 – BugHunterUK

答えて

1

このコードは匿名機能を使用しています。基本的な構文は[capture-list] (list-params) { function-body}です。だから何[&]行うことはあなたはそれがラムダだ

関連する問題