gpt4 book ai didi

c++ - 如何将 std::endl 传递给函数并使用它?

转载 作者:行者123 更新时间:2023-11-30 01:18:13 24 4
gpt4 key购买 nike

我想弄清楚如何传递像 std::endl 这样的操纵器到函数,然后在函数中使用传入的操纵器。我可以这样声明函数:

void f(std::ostream&(*pManip)(std::ostream&));

我可以这样调用它:

f(std::endl);

没关系。我的问题是弄清楚如何使用内部的操纵器 f .这不起作用:

void f(std::ostream&(*pManip)(std::ostream&))
{
std::cout << (*pManip)(std::cout); // error
}

无论编译器如何,错误消息归结为编译器无法找出哪个 operator<<打电话。我需要在内部修复什么 f让我的代码编译?

最佳答案

void f(std::ostream&(*pManip)(std::ostream&))
{
std::cout << "before endl" << (*pManip) << "after endl";
}

void f(std::ostream&(*pManip)(std::ostream&))
{
std::cout << "before endl";
(*pManip)(std::cout);
std::cout << "after endl";
}

关于c++ - 如何将 std::endl 传递给函数并使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22927906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com