lvalue ссылки

я есть следующая функция шаблона со специализацией:

// Pass the argument through ...
template<typename T, typename U=T>
U convert(T&& t) {
  return std::forward<T>(t);
}

// ... but convert std::strings
const char* convert(std::string s) {
  return s.c_str();
}

Если у меня тогда есть функция шаблона variadic как:

template<typename ... Args>
void doSomething(Args ... args) {
  // Convert parameter pack using convert function above
  // and call any other variadic templated function with
  // the converted args.
}

Есть ли способ конвертировать пакет параметров с помощью функции convert, как в комментарии?

Моя первоначальная цель состояла в том, чтобы иметь возможность передавать std :: string в '% s' в функции, похожей на printf, без необходимости вручную вызывать .c_str () для строки s. Но я также заинтересован в целом, если это можно сделать простым способом, мои попытки пока не увенчались успехом.

Ответы на вопрос(0)

Ваш ответ на вопрос