私はすぐに爆発しています...誰かが現在ここで何が間違っているかを指摘してください:
template <typename TType, template <typename ...> class Container, class Comparer>
Container<TType>* sort(const Container<TType>& container) {
...
}
Container パラメーターとして std::vector を使用してこの関数を呼び出そうとすると、問題が発生します。次のエラーが表示されます。
main.cpp:24:34: error: no matching function for call to 'func()'
main.cpp:24:34: note: candidate is:
main.cpp:14:6: note: template<class T, template<class ...> class Container> void func()
main.cpp:14:6: note: template argument deduction/substitution failed:
そして、これが私がそれを呼び出そうとしている方法です:
std::vector<int>* m(sort<int, std::vector<int>, Comparer>(m));
関数からテンプレート テンプレート パラメータを削除すると機能しますが、機能しません... MinGW に付属の最新の g++ コンパイラを使用しています。IDE は NetBeans 7.3 ですが、あまり影響はありません。コンパイラの引数は次のとおりです。
-std=c++11 -Wall -pedantic
いつも助けてくれてありがとう - ジョーイ