С выводом аргумента шаблона класса мы можем написать:
std::less Fn;
Однако G++ 8.2 отклоняет этот код:
#include <algorithm>
#include <vector>
#include <functional>
int main()
{
std::vector v= { 1, 3, 2, 7, 5, 4 };
std::sort(v.begin(),v.end(),std::greater());
}
выдает следующую ошибку:
error: cannot deduce template arguments for 'greater' from ()
Клан G++ 7.0 и MSVC 15.8.0 компилируют его без предупреждений. Какой компилятор прав?