вот такой простой пример
struct Accessor{
template <typename A> void plot(A &a) const {
a.plot_impl<0>(*this);
}
};
struct XXX{
template <int I> void plot_impl(const Accessor&){}
void plot(const Accessor &acc){ acc.plot(*this); }
};
при сборке вылетает ошибка
$ g++ -std=c++11 -c test-accessor.cpp
test-accessor.cpp: In instantiation of ‘void Accessor::plot(A&) const [with A = XXX]’:
test-accessor.cpp:9:48: required from here
test-accessor.cpp:3:14: error: invalid operands of types ‘<unresolved overloaded function type>’ and ‘int’ to binary ‘operator<’
a.plot_impl<0>(*this);
~~~~~~~~~~~^~
gcc 7.5.0
ЧЯНТД? Почему он не видит что plot_impl параметризована?