17904


c++のlambda式から、キャプチャした変数のリストを取得することはできますか？

[code]

    int x = 10;
    auto f = [x](){};
    //auto captureList = f.captureList;
    
[/code]


CC BY-SA 3.0
2015-10-21T12:59:31.037
17900
2015-10-21T14:33:21.517
8825
question
c++ c++11 lambda
lambdaからcapture-listを取得する方法


英語版で同様の質問 ([Get captured variables from
lambda?](https://stackoverflow.com/questions/19963041/get-captured-variables-
from-lambda)) がありました。結論から言うと「できない」ようです。

リンク先で引用している言語仕様 (5.1.2 [expr.prim.lambda]) をざっと訳してみると

  * コピーキャプチャに対しては、static ではない、無名のデータメンバがクロージャ内で宣言される。その順番は規定しない。
  * 参照キャプチャに対しては、そのようなデータメンバを宣言するかどうかも規定しない。

なので、キャプチャについてのメタデータはないと思います。


CC BY-SA 3.0
2015-10-21T14:33:21.517
17904
2015-10-21T14:33:21.517
2017-05-23T12:38:55.307
-1
3605
17900
answer