Форум для программистов - задавайте интересные вопросы - получайте квалифицированные ответы
Как определить шаблонный тип? через наследование?
  • reg1strreg1str June 2011
    есть 2 вот таких класса:
    Код:

    template
    class Ca : public t
    { };

    template
    class Cb
    { };

    мне нужно создать третий, вот такого типа:
    Код:

    template Ca > Cx;

    у меня получается только через наследование, т.е. так:
    Код:

    template
    class Cx :
    public Ca >
    { };

    Не очень нравится такой способ, т.к. если, например, Ca имеет конструктор с параметрами, то его нужно повторно описывать для класса Cx.

    через typedef не получается :((
  • deft0ndeft0n June 2011
    Если ещё только через make функцию, у которой будет один шаблонный параметр. По-другому не получится, так как не выводить и не изменять кол-во параметров, ни класс, ни его специализации не могут. typedef не особо на что тут влияет.

    Ну или вот так корявенько.
    Код:

    class dummy {};

    template
    class Ca : public t
    { };

    template
    class Cb
    { };

    template
    class Ca >
    {
    };


    int main ()
    {
    Ca<5> a;
    }

Webparadox - разработка мобильных приложений под iOS и Android.