This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Incorrect (?) template specialization results when compiling with -O3


As I said in another email, this is fine so long as the specialization
is for a primitive type. For user-defined types it gets much more
complicated, and leads to circular dependencies.

On Fri, 10 Jul 2009 09:25 -0400, "John Fine" <johnsfine@verizon.net>
wrote:
> No.  The header file did not declare the specialization, so the 
> specialization was called without being declared.
> 
> I think you only need to declare it, not define it, in the compilation 
> where it is called (though one of the posts in that link said 
> otherwise).  Change the header file to
> 
> // Binky.h
> #ifndef BINKY_H
> #define BINKY_H
> template<typename T> const char* getString()
> {
>     return "T";
> }
> template<> const char* getstring<int>();
> #endif


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]