Re: template class within another : problem with gcc 3.2.3 on linux (BUG ??)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hi corey,

>>  What type of objects are contained_size and inner_object?

Sorry, that was a typo (not in the actual code but in the mail that i
sent).
(Instead of putting the actual code, i wanted to put in a short one
illustrating the problem!!)


inner_object is an object of  class contained  (which was correct in the
mail). This is within the  class "enclosing". The "enclosing"
class has a template parameter  "size" and contained is created using that
size. WHICH IS WHERE THE PROBLEM ORIGINATES
as i said in the previos mail.

      i.e.,  contained<size> inner_object;

and there was a typo in the  static_cast . It should be :
          (static_cast<contained <size> >( inner_object) ) .fun_inner();


I hope i can get some answer as this looks very gcc specific.

Thanks in  advance
---------------------------------------------------------------------------------------------------------

Warm Regards,
Suresh.T




                                                                           
                                                                           
                                                                           
                                                                        To 
                                       Suresh T/BTC/SC/PHILIPS@PHILIPS     
                                                                        cc 
     corey taylor                      gcc-help@xxxxxxxxxxx                
                                                                   Subject 
     Sent by:                          Re: template class within another : 
     gcc-help-owner@xxxxx              problem with gcc 3.2.3 on linux     
     nu.org                             (BUG ??)                           
                                                            Classification 
     06/20/2005 08:17 PM                                                   
                                                                           
      Please respond to                                                    
         corey taylor                                                      
     <corey.taylor@gmail.                                                  
             com>                                                          
                                                                           
                                                                           




Suresh,

  What type of objects are contained_size and inner_object?

corey

On 6/20/05, Suresh T <suresh.t@xxxxxxxxxxx> wrote:
> hi,
>
> I need to use a template class object  within another template class.
> Specifically gcc (3.2.3 on linux) gives me a problem when the INNER
> TEMPLATE OBJECT IS CREATED USING THE TEMPLATE PARAMETER OF THE ENCLOSING
> CLASS and when i call the inner class object function from the  enclosing
> class object function..
>  AS this works fine in MS VC7 so i wanted to know if this is some bug in
> gcc
>
> Example :
> In the below example the "enclosing" class contains an object of
> "contained" class. The  contained object is  created using the
> template  parameter of "enclosing" class. When the "enclosing" class
> function is called, we call the function of the inner object.
>
> template <std::size_t size>
> class contained {
>    public:
>          template <std::size_t sub_size>
>          int   func_inner(){   ...  }
>
> };
>
> template < std::size_t  size>
> class enclosing {
>
>      public:
>
>      template <std::size_t sub_size>
>       int   func_enclose(){   ...
>
>            return
>             (static_cast<contained_size>( inner_object) ) .fun_inner();
>                                                                        //
> =================THIS GIVES AN ERROR         ========================
> MARK1
>        }
>
>       contained<size> inner_object;      //   ============== THIS IS THE
> ORIGIN OF ERROR ? =====================      MARK2
>
> };
>
>
> Note : The error disappears if i use a specific value when creating the
> inner_object ( MARK 2 above)
> That is instead of   "contained<size> inner_object" if i use "contained
<N>
> inner_object" where N is any number like 32.
> (Even in that case i need to use a static_cast ( see MARK 1) to remind
the
> compiler of the data type of inner_object otherwise
> the compiler gives an error which i find strange.)
>
> I cant use a specific value for the inner object as it should take it
from
> the enclosing class template parameter. Since this is
> not working i would greatly appreciate if someone can tell me whether
this
> is a gcc bug or if i need to do something special to let the compiler
> know what i am trying to do.
>
> Thanks &
>
---------------------------------------------------------------------------------------------------------

>
> Warm Regards,
> Suresh.T
>
>
>



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux