С++ 'typedef' vs. 'using... =...' - программирование
Подтвердить что ты не робот

С++ 'typedef' vs. 'using... =...'

Возможный дубликат:
Каковы различия между typedef и использованием в С++ 11?

Следующий код компилируется и запускается. Мой вопрос в чем разница между методом "typedef" и "use" для переименования специализации шаблона?

template<typename T>
struct myTempl{
    T val;
};

int main (int, char const *[])
{
    using templ_i = myTempl<int>;
    templ_i i;
    i.val=4;

    typedef myTempl<float> templ_f;
    templ_f f;
    f.val=5.3;

    return 0;
}

Изменить:

Если нет никакой разницы, какой из них вы бы предпочли?/Почему была использована версия... =...?

4b9b3361

Ответ 1

Они одинаковы.

Чтобы указать стандарт С++ 11 (или конкретный проект):

Имя typedef также может быть введено с помощью объявления alias. Идентификатор, следующий за с использованием ключевого словастановится typedef-name и необязательным атрибутом-спецификатором-seq, следующим за идентификатором, к этому ЬурейеЕ имя. Он имеет ту же семантику, что и его спецификатор typedef. В частности, это не определяет новый тип и не будет отображаться в идентификаторе типа.

Я думаю, что "те же семантики, что и спецификатор typedef", говорят все.