Шаблоны C ++ Угловые скобки Pitfall – Что такое C ++ 11?
В C ++ 11 это синтаксис:
vector<vector> MyMatrix;
тогда как раньше это должно было быть написано так (обратите внимание на пробел):
vector<vector > MyMatrix;
Мой вопрос в том, что такое исправление, которое стандарт использует для первой версии?
- Что такое «непосредственный контекст», упомянутый в стандарте C ++ 11, для которого применяется SFINAE?
- постоянные ссылки с typedef и шаблонами в c ++
- Как изменить шаблоны Visual Studio для нового classа / интерфейса C #?
- SFINAE работает в обратном типе, но не как параметр шаблона
- Определить, является ли тип указателем в функции шаблона
Может ли быть так же просто, как сделать >
токен вместо >>
? Если это не так, что не работает с этим подходом?
Я считаю, что такие формы, как myTemplate>3 >
являются проблемой, поскольку вы можете устранить их, выполнив myTemplate>3)>
.
- Сохранение определений функций шаблонов C ++ в файле .CPP
- Общая библиотека C ++ с шаблонами: ошибка неопределенных символов
- Вызов функции для каждого вариационного аргумента шаблона и массива
- Что такое руководства по вычитанию шаблонов и когда мы должны их использовать?
- функция члена шаблона classа шаблона, вызванная из функции шаблона
- недопустимое использование неполного типа
- Динамически регистрировать методы конструктора в AbstractFactory во время компиляции с использованием шаблонов C ++
- std :: enable_if условно скомпилировать функцию-член
Он исправляется путем добавления специального случая к правилам синтаксического анализа при анализе аргументов шаблона.
C ++ 11 14.2 / 3: при анализе списка шаблонов-аргументов первый не-вложенный
>
берется как конечный разделитель, а не оператор большего размера. Аналогично, первый не-вложенный>>
рассматривается как два последовательных, но отличных>
токена, первый из которых берется как конец списка шаблонов-аргументов и завершает идентификатор шаблона .