C++相談室 part166 (569レス)
前次1-
抽出解除 レス栞

94
(1): デフォルトの名無しさん (ワッチョイ b301-EQi3) [sage] 2025/05/18(日) 00:04:05.67 ID:2dlUsl+c0(1/2) AAS
>>89
89(5): デフォルトの名無しさん (ワッチョイ 2308-s4bX) [] 2025/05/17(土) 00:38:48.40 ID:+G5mL4qu0(1) AAS
C++でラムダ式をコンストラクタで受け取るにはどうすればいいの?
std::function使ってもエラーでる

#include <functional>
#include <iostream>
struct Hoge {
Hoge (const std::function <void ()> &f) {f ();}
};
int main () {
Hoge hoge {[] {std::cout << "hoge\n";}};
return 0;
}

とか?
95
(2): デフォルトの名無しさん (ワッチョイ 8be4-Od/L) [] 2025/05/18(日) 01:52:18.18 ID:1CgD4IwZ0(1) AAS
>>94
自分の場合は7行目で

Hoge hoge = [] {std::cout << "hoge\n";};
のように書いてエラーとなってます。
このCのような初期化構文はコンストラクタの呼び出しを行わないのでしょうか?
ちなみにこのレスように書いたらエラーが消えました
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.062s*