Предполагается ли работать явная специализация класса шаблона C++ через псевдоним использования?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Предполагается ли работать явная специализация класса шаблона C++ через псевдоним использования?

Сообщение Anonymous »

Во-первых, то, что я делаю, похоже работает на всех GCC/Clang/MSVC/icc/etc, поэтому мой вопрос: это случайно или стандарт требует, чтобы это было разрешено?
С одной стороны это кажется логическим продолжением вещей, но с другой стороны синтаксис выглядит настолько странно, что я обеспокоен тем, что ухожу на территорию зависимости от ошибок:
#include

template
void Bar();

template
struct A {
struct T : std::true_type {};
static void Foo() { Bar(); }
};

// The normal way to do thing:
template struct A::T : std::false_type {};

// But this also seems to work despite looking very odd:
using A3 = A;
template struct A3::T : std::false_type {};

void Go() {
A::Foo(); // Calls Bar()
A::Foo(); // Calls Bar()
A::Foo(); // Calls Bar()
A::Foo(); // Calls Bar()
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... upposed-to
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»