------- Additional Comments From ramya dot chandar at wipro dot com  2004-11-23 
12:31 -------
Subject: Re:  seems not possible to specialize a template member
 function

clarification please...

I tried including "template<>" in front of each of the specialized template 
member functions. It doesn't solve the problem.

Looking at my code, for my knowledge, it doesn't look like violating the rule 
(14.7/5). Can you please tell me what exacting is going wrong and how does it 
violates the rule. 

According to 14.7/5 rule, 
A  non-exported template that is neither explicitly specialized nor explicitly 
instan-
  tiated must be defined in  every  translation  unit  in  which  it  is 
implicitly   instantiated or  explicitly  instantiated; no diagnostic is 
required. An  exported  template need  only  be declared (and not necessarily 
defined) in a translation unit in which it is instantiated.  A template 
function  declared  both exported and inline is just inline and not exported.

But, in the code i have attached,( since the generalised and specialized 
template member functions ) are explicitely instantiated in a module( 
Sequence.impl ), its not defined separately in any of the translation unit. 
Still why does it fail.

I don't know how is it violating the rule. Can you please tell me, what needs 
to be done exactly.

Thanks,
Ramya.

------- Additional Comments From pinskia at gcc dot gnu dot org  2004-11-05 
04:28 -------
As I said before the code you have here is invalid C++.

you have to add
template<> in front of each of the specialization of a template member function.

Also you have problems with template namelookup also (read the 3.4 release 
notes for the problems 
which I am talking about).

-- 

pinskia at gcc dot gnu dot org wrote:

>------- Additional Comments From pinskia at gcc dot gnu dot org  2004-11-05 
>05:03 -------
>Invalid, as what you are doing is called explicit specializtion and when this 
>happens you instantiate the 
>template and now you are violating the one defintional rule (which is 14.7/5 
>in the C++ standard).
>
>  
>




-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18306

Reply via email to