Информация об изменениях

Сообщение Перегрузка шаблонной функции от 16.02.2017 12:52

Изменено 16.02.2017 13:18 Videoman

Перегрузка шаблонной функции
Вроде бы простая вещь, но не могу придумать простое решение:
нужно перегрузить свободную функцию Test принимающую один аргумент, в зависимости от того есть ли у класса внутри тип some_tag (ну или подобный триггер).
class A1
{
    ...
};

class A2
{
    ...
};

class B1
{
    ...
    typedef void sime_tag;
    ...
};

class B2
{
    ...
    typedef void sime_tag;
    ...
};


Test(A1());
Test(A2());
Test(B1());
Test(B2());

т.е. хочется, чтобы шаблонная функция существовала в двух видах. Первый для A1 и A2, а второй для B1 и B2. Что-то торможу, помогите пожалуйста. Желательно в рамках подмножества стандарта VS2013 и С++11.
Перегрузка шаблонной функции
Вроде бы простая вещь, но не могу придумать простое решение:
нужно перегрузить свободную функцию Test принимающую один аргумент, в зависимости от того есть ли у класса внутри тип some_tag (ну или подобный триггер).
class A1
{
    ...
};

class A2
{
    ...
};

class B1
{
    ...
    typedef void some_tag;
    ...
};

class B2
{
    ...
    typedef void some_tag;
    ...
};


Test(A1());
Test(A2());
Test(B1());
Test(B2());

т.е. хочется, чтобы шаблонная функция существовала в двух видах. Первый для A1 и A2, а второй для B1 и B2. Что-то торможу, помогите пожалуйста. Желательно в рамках подмножества стандарта VS2013 и С++11.