如何为std :: string可变参数模板参数调用c_str()?

问题描述 投票:0回答:2

[我有一个接受格式字符串+参数的方法(右边为printf(),但是,我为此使用可变参数模板:

template<typename... Args>
static void log(const char* pszFmt, Args&&... args)
{
    doSomething(pszFmt, std::forward<Args>(args)...);
}

一些args可以是std :: string实例。是否可以确保doSomething永远不接受std :: string,而是始终接受const char*而不是接受传递给std::string的每个源log()

换句话说,我需要一种方法来将所有args转发到doSomething(),使所有std::string参数替换为std::string::c_str()返回的内容。

提前感谢!

c++ templates stl variadic-templates
2个回答
0
投票

您可以定义自己的“转发”方法:


0
投票

C ++ 17版本

© www.soinside.com 2019 - 2024. All rights reserved.