Кажется, я припоминаю, что в былые времена меня предупреждали не помещать два символа >
рядом друг с другом (без пробела) при работе с параметрами вложенных шаблонов. Я даже смутно помню, как объявлял векторы векторов чего угодно и сталкивался с этой ошибкой компиляции.
Но теперь я нахожу, что нет абсолютно ничего плохого в компиляции страшного >>
...
Мой вопрос ( s) таковы:
В какой момент это соглашение стало приемлемой практикой?
Является ли оно частью стандарта C ++?
Всегда ли оно было частью стандарта и компиляторов, которые я использовал (и профессоров, которые у меня были ) в колледже просто еще не поддержали это?
Может быть, эти вопросы немного исторические, но мне кажется, что правильный исторический контекст делает фактическое запоминание тривиальным.
Синтаксис двойных угловых скобок в шаблонах все еще недопустим в C ++, но некоторые компиляторы (в частности, Visual Studio) в любом случае допускают это. В C ++ 0x, который был только что ратифицирован и ожидает публикации, это было исправлено.
Короче говоря, это все еще не легальный C ++, но скоро будет. Компиляторы Sme допускают это, но, поскольку не все, вы все равно должны ставить пробелы в угловых скобках. Через два-три года вам это больше не понадобится.
Надеюсь, это поможет!