------- Comment #3 from bangerth at gmail dot com 2010-03-08 00:19 ------- But that would mean that the following code should be invalid because the compiler should never find HasFoo<T>::foo even at instantiation time: --------------------- template<typename T> struct HasFoo { void foo(T) { } };
template<typename T> struct Bar : HasFoo<T> { void bar() { foo(T()); } }; int main() { Bar<int> b; b.bar(); } --------------------- I don't think the intent is to make this invalid. W. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43282