- C++相談室 part128 [無断転載禁止]©2ch.net
153 :デフォルトの名無しさん[]:2016/12/01(木) 16:59:12.87 ID:umvXirxE - clang: candidate template ignored: couldn't infer template argument 'T'
gcc: candidate: template<class T> void hoge(typename moge<T>::hage) template argument deduction/substitution failed: couldn't deduce template parameter 'T' cl: 'hoge': no matching overloaded function found 'void hoge(moge<T>::hage)': could not deduce template argument for 'T' see declaration of 'hoge' みんな口を揃えて「Tが推定できない」と言ってくる じゃあ、Tを明示的に与えては? hoge<int>(moge<int>::hage{}); ちょっと腹立つけど、typenameだのtemplateだのの前置と ウザさはそう変わらんと思う
|
- C++相談室 part128 [無断転載禁止]©2ch.net
154 :デフォルトの名無しさん[]:2016/12/01(木) 17:04:30.75 ID:umvXirxE - ヘルパー関数を用意するとか
template <typename T> void hige() { hoge<T>(moge<T>::hage{}); }
|
- C++相談室 part128 [無断転載禁止]©2ch.net
155 :デフォルトの名無しさん[]:2016/12/01(木) 17:06:57.95 ID:umvXirxE - ラムダ式でも似たようなのできるな
auto closure = [](auto arg){ hoge<decltype(arg)>(moge<decltype(arg)>::hage{}); }; closure(1);
|
- Visual Studio 2015 Part7 [無断転載禁止]©2ch.net
582 :デフォルトの名無しさん[]:2016/12/01(木) 21:29:01.72 ID:umvXirxE - GetDeviceCapsが返す値と現実の表示装置の違いなら、
実機でもVMでも問題が生じるという点で同じだろ
|