$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Terje Slettebø (tslettebo_at_[hidden])
Date: 2003-01-08 09:07:37
>From: "Thorsten Ottosen" <nesotto_at_[hidden]>
> just want to show you something I discovered
> (maybe you already know) which allows template functions to be specialized
> for a class without including its header; it does require that classes are
> changed internally,
> but I assume it will make compilation mucho faster. (another problem is
that
> I can only
> compile it with Comeau, neither GCC 3.2 or vc7 can eat it).
>
> Anyway, the example is quite straightforward:
>
> #include <iostream>
>
> using namespace std;
>
> template< typename C >
> void foo( const C& c )
> {
> foo_impl( c, C::tag() );
It appears typename is needed here:
foo_impl( c, typename C::tag());
since "tag" is a dependent type. This makes it still work on EDG (I've
tested it on Intel C++), and it works better on GCC 3.2, although now it
reports that it can't disambiguate the two overloaded function templates.
Regards,
Terje