[解決済み] C++で[=]はどういう意味ですか?
2022-12-22 06:24:52
質問
知りたいのは
[=]
が何をするのか知りたいですか?簡単な例を示します。
template <typename T>
std::function<T (T)> makeConverter(T factor, T offset) {
return [=] (T input) -> T { return (offset + input) * factor; };
}
auto milesToKm = makeConverter(1.60936, 0.0);
このコードは
[]
の代わりに
[=]
?
と仮定します。
std::function<T (T)>
を取得する関数プロトタイプを意味します。
(T)
を引数として取り、戻り値として
T
?
どのように解決するのですか?
この
[=]
の一部です。
キャプチャリスト
の一部です。これは、ラムダ式内のコードが初期化され、ラムダが生成されるときに使用するすべてのローカル変数のコピーを取得することをC++に伝えるものです。これは、ラムダ式が
factor
と
offset
であり、これらは関数内部のローカル変数である。
を置き換えると
[=]
を
[]
と書くと、ラムダ式内のコードが変数
offset
と
factor
を参照してください。多くのコンパイラーは、これを実行すると良い診断エラーメッセージを出しますので、試してみて何が起こるか見てみましょう!
関連
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] ムーブセマンティクスとは何ですか?
-
[解決済み] C++11のT&&(ダブルアンパサンド)の意味とは?
-
[解決済み] C++テンプレート関数定義の.CPPファイルへの格納
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】C++11のラムダ式って何?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された
-
[解決済み】C++11のラムダ式って何?