C++相談室 part109
■ このスレッドは過去ログ倉庫に格納されています
0084デフォルトの名無しさん
2013/12/31(火) 12:47:02.463つ目の可変長引数を要求する関数がSFINAEによって除外されていないから
SFINAEはオーバーロード集合から関数を取り除くが、オーバーロード解決には影響しない
可変長引数に引数を渡さないときは他の関数と同じ優先順位みたい
解決策1:それ以外の場合の関数の引数を全て可変長引数にする
http://ideone.com/j9ncv6
可変長引数に引数が渡されるとき、その関数の優先順位は下がるのを利用する
解決策2:明示的に第三引数を渡す
http://ideone.com/MxqVsc
理由は策1と同じ 明示的に渡したくないならラッパを一段噛ませればよい
規格での規定はどうなっているのかよく分からないので詳しい人にお願いしたい
参考
http://cpplover.blogspot.jp/2010/03/decltypesfinae.html
■ このスレッドは過去ログ倉庫に格納されています