Я знаю, что когда мы используем шаблон внутри другого шаблона, мы должны написать это так:
vector<pair<int,int> > s;
и если мы напишем это без пробела:
vector<pair<int,int>> s;
мы получим ошибку:
`>>' должно быть `> >' во вложенном списке аргументов шаблона
Я вижу, это понятно, но я просто не могу не задаться вопросом, в каких случаях это будет действительно двусмысленно?
boost::array<int, (1024>>2)> x;
14.07.2011boost::array<int, (1024>>2)> x;
, что устраняет двусмысленность. Кроме того, даже без этого его следует интерпретировать как array‹int, (1024 ›› 2)› x; имеет смысл и массив ‹int, 1024› (2› x); можно проверить как глупый случай, которого не должно быть ни в одной программе. Я НЕ ХОЧУ ВСТАВЛЯТЬ ДОПОЛНИТЕЛЬНЫЕ ПРОБЕЛЫ В МОИ ШАБЛОНЫ, ЭТО ПРИЧИНЯЕТ НЕСООТВЕТСТВУЮЩИЙ КОД. 03.09.2016g++ -std=c++98
в моем тесте. 06.03.2017( (templated::thing<int, 1024>)>2)> x;
Если да, то это может быть правильной интерпретацией данного примера. 18.10.2018boost::array
— это шаблон типа, поэтому это недопустимая интерпретация для моего примера. 21.10.2018( (templated::thing<int, 1024>)>2)> x;
является допустимым синтаксисом? Я просто задаюсь вопросом, является ли ›› как сдвиг единственно допустимой интерпретацией данного синтаксиса. 21.10.2018operator>
, он может даже скомпилироваться. Но я не вижу отношения к моему примеру. 21.10.2018