Я знаю, что в C++11 мы теперь можем использовать using для записи псевдонима типа, например typedefs:
Насколько я понимаю, эквивалентно:
И этот новый синтаксис появился в результате попытки найти способ выразить «определение типа шаблона»:
Код: Выделить всё
template< class T > using MyType = AnotherType< T, MyAllocatorType >;
Но есть ли какие-либо другие тонкие различия в стандарте с первыми двумя нешаблонными примерами? Например, typedef выполняет псевдонимы «слабым» способом. То есть он не создает новый тип, а только новое имя (между этими именами неявно преобразуются).
Это то же самое, что и использование, или оно генерирует новое тип? Есть ли различия?
Подробнее здесь:
https://stackoverflow.com/questions/107 ... -and-using