Старые возможности 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 `...'
Значит, можно передать пакет параметров, не расширяя его?