
Hello, this file contains code to create an error condition, which basically looks like this: ---%<--- struct foo { foo() {} template <class T> foo(T t) { *this = make_foo(t); } }; inline foo make_foo(int i) { return foo(); } foo f(42); --->%--- Both my compiler (Tru64 CXX 7.1) and Comeau C++ Online think this code is in error: ---%<--- cxx: Error: test.cxx, line 4: identifier "make_foo" is undefined detected during instantiation of "foo::foo(T) [with T=int]" at line 9 template <class T> foo(T t) { *this = make_foo(t); } ----------------------------------------^ --->%--- Therefore I think this should be changed to the following: ---%<--- struct foo; template <class T> foo make_foo(T); struct foo { foo() {} template <class T> foo(T t) { *this = make_foo(t); } }; template<> foo make_foo(int i) { return foo(); } foo f(42); --->%--- Is this correct? If yes, could that header be fixed? TIA, Markus