Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
/// is_trivially_constructible (still unimplemented)
Но без строк содержащих is_trivially_constructible работает./usr/include/c++/4.8/bits/stl_algo.h: In instantiation of ‘void std::sort(_RAIter, _RAIter) [with _RAIter = std::_List_iterator<int>]’:
test.cpp:7:45: required from here
/usr/include/c++/4.8/bits/stl_algo.h:5452:22: error: no match for ‘operator-’ (operand types are ‘std::_List_iterator<int>’ and ‘std::_List_iterator<int>’)
std::__lg(__last - __first) * 2);
template <class T implements RandomAccessibleIterator>Допустим, у нас заявлен некоторый интерфейс.
И, допустим, мы научили компилятор понимать, что некоторый класс соответствует этому интерфейсу даже если в сигнатуре класса *не* написано implements Interface.
Всё, проблема решена.
Однако те, кто пользовался шаблонами C++ знают, на что могут быть похожи сообщения об ошибках. На что угодно, только не на подсказкуОтлично сказано!
T Sum<T>(T a, T b) where T : operator +
{
return a + b;
}
Концепции Boost