Re: массив, ссылка или указатель?
От: rg45 СССР  
Дата: 05.02.17 12:59
Оценка: 68 (1)
Здравствуйте, collider, Вы писали:

C>Как сделать, чтобы примерно такой код компилировался?


Решения можно придумать разные, в зависимости от ситуации. Классика жанра — реализация одной шаблонной функции через серию специализаций шаблонного класса-имплеиентации.

Или SFINAE:

http://ideone.com/2dKajZ

#include <iostream>
#include <utility>

template<class T>
std::enable_if_t<std::is_fundamental<std::remove_reference_t<T>>::value> reset(T&&)
{
    std::cout << 1 << std::endl;
}

template<class T>
std::enable_if_t<std::is_pointer<std::remove_reference_t<T>>::value> reset(T&&)
{
    std::cout << 2 << std::endl;
}

template<class T>
std::enable_if_t<std::is_array<std::remove_reference_t<T>>::value> reset(T&&)
{
    std::cout << 3 << std::endl;
}

int main()
{

    int nRetCode = 0;
    
    char mass[10];
    char *pmass=mass;

    reset(mass);
    reset(pmass);
    reset(nRetCode);    
}
--
Справедливость выше закона. А человечность выше справедливости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.