Титульный вопрос относится к проектным решениям на стандарте С++, который вводил шаблоны в 1990 году.
Почему дизайнеры использовали <>
(угловые скобки) вместо, скажем, ()
(круглые скобки)? Это позволило бы сэкономить много программистов из ошибки смещения бит.
std::vector<std::vector<int>> // does not work until C++11
который был исправлен только на С++ 11. Я не вижу смысла вводить дополнительный синтаксис, например, когда, возможно, круглые скобки служили бы той же цели, сохраняя минимальные изменения. Установлено, что вы могли использовать
template(typename T) // Define template if round brackets could be used
mytemplate { ... }
...
...
mytemplate(mytemplate(int)) obj; //Instantiate template when round brackets could be used
Может ли кто-нибудь хорошо разбираться в истории С++ выкапывать оригинальное обоснование дизайна для использования угловых скобок? В качестве альтернативы вы можете показать, почему другие решения также не сработали бы?