C++ でこんな感じのコードを考えてたわけです。
template<int def> int foo(int x=def) { return x; } int foo32(void) { return foo<32>(); } int main(void) { foo32(); return 0; }
あれ? これ C++11 なら foo32 の定義はこう置きかえられるんじゃね?
auto foo32=foo<32>;
駄目でした。
エラー: 関数への引数が少なすぎます
そりゃそうだよね。 こうすると foo32 は関数じゃなくて関数ポインタになっちゃうんだよね。 デフォルト引数なんて知ったことではないよね。
Document ID: a54221bfe9698dab454cf032add44a3e