LINUX.ORG.RU

Вопрос неправильно поставлен. Надо спрашивать «с каких это пор он стал валидным?»

Ответ: g++ --std=c++0x

geekless ★★
()

Из астрала подсказывают, что в старом стандарте локальный тип не может быть агрументом шаблона. А вот в С++0х может.

AF ★★★
()
Ответ на: комментарий от AF

Ага, вот астрал более точно транслирует из спецификации: «A local type, a type with no linkage, an unnamed type or a type compounded from any of these types shall not be used as a template-argument for a template type-parameter.»

geekless ★★
()
Последнее исправление: geekless (всего исправлений: 1)
Ответ на: комментарий от AF

Из астрала подсказывают, что в старом стандарте локальный тип не может быть агрументом шаблона. А вот в С++0х может.

Спасибо астралу за подсказку. Если вам не сложно, спросите астрал про пункт в стандарте. Хочу посмотреть и убедиться что я тормоз.

andreyu ★★★★★
() автор топика
Ответ на: комментарий от geekless

Ага, вот астрал более точно транслирует из спецификации: «A local type, a type with no linkage, an unnamed type or a type compounded from any of these types shall not be used as a template-argument for a template type-parameter.»

Спасибо, какой это пункт в стандарте?

andreyu ★★★★★
() автор топика
Ответ на: комментарий от panter_dsd

А кто тебе сказал, что он не валиден?

Логика. Что невалидного в этом коде? Локальная структура, локально используется.

andreyu ★★★★★
() автор топика
Ответ на: комментарий от geekless

§14.3.1/2

Спасибо, добрый человек.

andreyu ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.