Проблема с ADL
От: Videoman Россия https://hts.tv/
Дата: 23.05.18 07:11
Оценка:
Мне хотелось бы написать некий шаблонный метод, который инстанцируется только в случае наличия другого метода перегруженного для подставляемого параметра. Пример:
template<typename Type>
auto Func(Type first) -> declspec(TagFunc(first))
{
    return TagFunc(first);
}

Проблема: TagFunc внутри метода, если нужно, ищется с использованием ADL, но уже внутри declspec ADL не подчиняется и в случае вызова из другого пространства имен auto не может определить тип возвращаемого параметра.
Вопросы:
1. Это глюки, не достаточная поддержка С++11 у 2013-ой студии?
2. Это поведение по стандарту и так и должно быть?

Если приведенный код не рабочий, то можно ли тут что-то сделать?
Отредактировано 23.05.2018 7:12 Videoman . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.