[過去ログ] C++相談室 part164 (1002レス)
前次1-
抽出解除 レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
264
(2): デフォルトの名無しさん (JP 0H91-FhUT) [] 2023/06/20(火) 21:39:35.82 ID:Pk8V/jejH(1/4) AAS
template<typename Callback>
void func(Callback cb)
{
//cb(1); // A
//cb(1,2);// B
}

void f1(int){}
void f2(int,int){}

int main(){func(f1);}

AとBをコンパイル時に呼び分けたいんですけど
どのように記述すればよいか教えていただけませんか?
272
(1): デフォルトの名無しさん (JP 0H91-FhUT) [] 2023/06/20(火) 22:44:14.18 ID:Pk8V/jejH(2/4) AAS
>>269
ありがとうございます。
gcc 13.1.0 でc++17でうまくいきました。

後出しで申し訳ありませんが、C++14でかけませんか?
274
(1): デフォルトの名無しさん (JP 0H91-FhUT) [] 2023/06/20(火) 22:48:18.64 ID:Pk8V/jejH(3/4) AAS
>>269
まさにこれをやりたかったです。

template<typename Callback>
void func(Callback cb)
{
// こことか

if constexpr (std::is_invocable_v<Callback, int>) {
cb(1);
} else if constexpr (std::is_invocable_v<Callback, int, int>) {
cb(1,2);
}

// ここをどうしようか悩んでいました
}
276: デフォルトの名無しさん (JP 0H91-FhUT) [] 2023/06/20(火) 23:14:31.48 ID:Pk8V/jejH(4/4) AAS
>>275
情報ありがとうございます

ご掲示いただいたコードで勉強になりました。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.576s*