тождественное & л; Т & GT; Обертка в сигнатуре функции перегрузки отключает перегрузку

Я хава перегружен оператором потока << для нового типа шаблона X<T> и это работает. Но если я оберну этот тип с функцией идентичности identity<X<T>>::type код ломается.

Я пробовал gcc 4.6.2 / gcc 4.8.1 / clang 3.3

Любой намек?

#include <iostream>

template <typename T>
struct ebenso // because I could not find std::identity, any hint?
{
typedef T type;
};

template <typename T>
struct X
{
T value;
};

template<typename T>
inline std::ostream  &
operator << (std::ostream& stream, typename ebenso< X<T> >::type const & x)
{
return stream << x.value << std::endl;
}

int main ()
{
X<int> x;
x.value = 7;
std::cout << x << std::endl; // The overload is not found
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]