1
template<typename Iterator, typename typename Comparator = std::less<typename std::iterator_traits<Iterator>::value_type>>
static void sort(Iterator begin, Iterator end, Comparator cmp = Comparator())
{
...
}
我有以下模板函數:默認值,功能參數
template<typename func>
static void sort_test(func sort)
{
...
sort(somevector.begin(), somevector.end());
...
}
int main()
{
sort_test(&sort<vector<int, allocator<int>>::iterator>);
return 0;
}
錯誤C2198: '無效(__cdecl *)(迭代器,迭代器的std ::以下)':太
template<typename func>
static void sort_test(func sort)
{
...
sort(somevector.begin(), somevector.end(), std::less<int>);
...
}
int main()
{
sort_test(&sort<vector<int, allocator<int>>::iterator>,
std::less<int>);
return 0;
}
錯誤C2275:「的std ::少」:呼叫
如果我試圖通過提供它繞過默認參數幾個參數伊勒GAL使用這種類型的作爲表達