The C++ compiler no longer allows an explicit template without the 'template <>' prefix. Use the compiler switch -Vbe to allow this. The following example shows this:
template <class> class foo { foo(); }; foo<int>::foo();//Error template<> foo<int>::foo();//OK
Also, the C++ compiler no longer allows explicit template specialization within a class. Use the compiler switch -Vbx to allow this. For example, the following generates an error:
struct S {}; struct SP { template <typename> void foo(const T &) {} template <> void foo(const S &) {} // Error }; template <> void SP::foo(const S &) {} //OK
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|