Почему variadic templates в C++11?
От: Максим Рогожин Россия  
Дата: 21.05.19 17:28
Оценка: -2
Привет!

Можно ли было реализовать variadic templates в C++98/C++03 или они используют какие-то возможности языка, которые появились только в C++11?
Например unique_ptr не мог быть реализован в C++98 — вместо него был auto_ptr, т.к. не было move-семантики.
Отредактировано 21.05.2019 17:50 Максим Рогожин . Предыдущая версия .
Re: Почему variadic templates в C++11?
От: Vamp Россия  
Дата: 21.05.19 17:33
Оценка: +2
МР>Можно ли было реализовать variadic templates в C++98/C++03 или они используют какие-то возможности языка, которые появились только в C++11?

Странный вопрос. Variadic templates определены в стандарте 11, а в стандарте 03 их нет. По-этому, в С++03 их использовать нельзя. Можно ли было определить их в стандарте 03? Можно было, и в 98 можно было, и в CFront можно было реализовать. Но их там нет.

Если вопрос стоит "можно ли их эмулировать в С++03" — то можно с определенной долей успеха. См., например, Boost.MPL.
Да здравствует мыло душистое и веревка пушистая.
Re[2]: Почему variadic templates в C++11?
От: Максим Рогожин Россия  
Дата: 21.05.19 17:46
Оценка:
Здравствуйте, Vamp, Вы писали:

МР>>Можно ли было реализовать variadic templates в C++98/C++03 или они используют какие-то возможности языка, которые появились только в C++11?


V>Странный вопрос. Variadic templates определены в стандарте 11, а в стандарте 03 их нет. По-этому, в С++03 их использовать нельзя. Можно ли было определить их в стандарте 03? Можно было, и в 98 можно было, и в CFront можно было реализовать. Но их там нет.


V>Если вопрос стоит "можно ли их эмулировать в С++03" — то можно с определенной долей успеха. См., например, Boost.MPL.


Поясню вопрос: например unique_ptr не мог быть реализован в C++98 — вместо него был auto_ptr, т.к. не было move-семантики.
Re: Почему variadic templates в C++11?
От: andrey.desman  
Дата: 21.05.19 17:52
Оценка:
Здравствуйте, Максим Рогожин, Вы писали:

МР>Можно ли было реализовать variadic templates в C++98/C++03 или они используют какие-то возможности языка, которые появились только в C++11?


variadic templates сами являются возможностью языка, которая появилась только в C++11. Поэтому вопрос ВООБЩЕ не понятен.
Re[3]: Почему variadic templates в C++11?
От: Vamp Россия  
Дата: 21.05.19 18:01
Оценка:
МР>Поясню вопрос: например unique_ptr не мог быть реализован в C++98 — вместо него был auto_ptr, т.к. не было move-семантики.

Если ставить вопрос так, то variadic template — это core language feature, а не часть библиотеки (в отличии от умных указателей). Вопрос "можно ли реализовать" имеет смысл для библиотек, а не для core language.
Да здравствует мыло душистое и веревка пушистая.
Re[3]: Почему variadic templates в C++11?
От: Igore Россия  
Дата: 22.05.19 10:24
Оценка:
Здравствуйте, Максим Рогожин, Вы писали:

МР>Поясню вопрос: например unique_ptr не мог быть реализован в C++98 — вместо него был auto_ptr, т.к. не было move-семантики.

Мог, не совсем так как с move семантикой но мог, для большинства сценариев можно было заменить на boost::scoped_ptr, остаются контейнеры, но это по идее можно на уровне stl решить без добавления move семантики.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.