相关疑难解决方法(0)

C++标准库头可以包含C标准头吗?

我只能在标准草案N4582中找到

[res.on.headers/1] C++标头可能包含其他C++标头.

似乎没有指定C++标头是否可以包含C标准标头.

如果允许,即使不包含此标头,使用C标准头中定义的全局名称是否不安全(因为程序可能通过某些C++标准头隐式包含头)?

c c++ c++-standard-library

14
推荐指数
1
解决办法
203
查看次数

非常简单的可变参数函数的问题

我正在尝试使用 C++ 中的可变参数模板来使用一个非常简单的日志函数:

void log(){}

template <typename T, typename... Types>
void log(T first, Types... arg)
{
    std::cout << first << " ";
    log(arg...);
}

int main()
{
    log(1,2);
    log(3, "four");
    log(5);
    log(6,"seven",8,9,10,11,12);
    log(13,14);

}

Run Code Online (Sandbox Code Playgroud)

但是在输出中,如果是整数(2, 5, 1214),但如果它们是字符串("four"),则不会丢失 log 函数的所有最后一个参数!??。这是为什么?我做错了什么?

output: 1 3 four 6 seven 8 9 10 11 13
Run Code Online (Sandbox Code Playgroud)

c++ templates variadic-templates

4
推荐指数
1
解决办法
78
查看次数