Const int passed to a templated method

Angelo Calafato angelo.calafato@gmail.com
Thu Sep 28 15:21:00 GMT 2006


2006/9/28, Benjamin Kosnik <bkoz@redhat.com>:
>
> > class Display
> > .....

> This is not the correct list for this type of question. Instead, I
> suggest you read "Modern C++ Design" by Andrei Alexandrescu. He also
> has a useful website: I suggest you look at it.
>
> That said:
>
> class display_policy_type1
> {
>   void process() { std::cout << "Type1\n"; }
> };
>
> class display_policy_type2
> {
>   void process() { std::cout << "Type2\n";
> };
>
> template<typename Policy>
> class display : public Policy { };
>
> is the usual design.
>
> -benjamin
>

Thanks Benjamin for the reply and the suggestions. My doubts are not on
the design but in the logic of gcc and templates in general. In particular
I don't understand why in the templated version of my code the instruction

   DisplayTraits<_t>::process();

do not works (_t is a const int declared as private member variable) while

   DisplayTraits<t>::process();

works correctly (t is a const int declared inside the main() ).
In fact I do not want to declare Display as template since the function
f() must remain with its syntax.
I don't know if this is the correct mailing list but I thought that this
prolem could address well in standard c++ implementation related questions.

- Angelo



More information about the Libstdc++ mailing list