Старые средства C stdio обеспечивали способ передачи набора аргументов с использованием vprintf
.
Существует ли аналогичный способ передачи пакета параметров шаблона C ++ 0x * без его расширения?
Это может быть полезно, если у вас есть конструктор производного класса, который принимает пакет параметров с переменным шаблоном и ему нужно просто передать его конструктору базового класса, а не распаковывать его.
Например:
template <class T, class... Args>
Base::Base(const T& v, const Args&... args)
{
/*...expand args here ....*/
}
template <class T, class... Args>
Derived::Derived(const T& v, const Args&... args) : Base(v, args)
{
/*...don't expand args...*/
}
Я думал, что вы можете просто обойти пакет параметров args
без его расширения, исключив ...
после аргументов, но это просто приводит кв ошибке компилятора в GCC 4.3:
error: parameter packs not expanded with `...'
Так что можно передать пакет параметров без его расширения?