Для вложенных шаблонов, когда `>>` стал стандартным C ++ (вместо `>>`)?

Кажется, я припоминаю, что в былые времена меня предупреждали не помещать два символа > рядом друг с другом (без пробела) при работе с параметрами вложенных шаблонов. Я даже смутно помню, как объявлял векторы векторов чего угодно и сталкивался с этой ошибкой компиляции.

Но теперь я нахожу, что нет абсолютно ничего плохого в компиляции страшного >> ...

Мой вопрос ( s) таковы:

В какой момент это соглашение стало приемлемой практикой?

Является ли оно частью стандарта C ++?

Всегда ли оно было частью стандарта и компиляторов, которые я использовал (и профессоров, которые у меня были ) в колледже просто еще не поддержали это?

Может быть, эти вопросы немного исторические, но мне кажется, что правильный исторический контекст делает фактическое запоминание тривиальным.

26
задан Jimmy 17 August 2011 в 01:28
поделиться

1 ответ

Синтаксис двойных угловых скобок в шаблонах все еще недопустим в C ++, но некоторые компиляторы (в частности, Visual Studio) в любом случае допускают это. В C ++ 0x, который был только что ратифицирован и ожидает публикации, это было исправлено.

Короче говоря, это все еще не легальный C ++, но скоро будет. Компиляторы Sme допускают это, но, поскольку не все, вы все равно должны ставить пробелы в угловых скобках. Через два-три года вам это больше не понадобится.

Надеюсь, это поможет!

3
ответ дан 28 November 2019 в 07:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: