gpt4 book ai didi

c++ - 在函数 C++ 中调用模板函数

转载 作者:行者123 更新时间:2023-12-04 12:30:33 24 4
gpt4 key购买 nike

我有类似的情况,但更复杂。我试图在普通函数中调用模板函数,但我无法编译...

#include <iostream>

using namespace std;

template<class T>
void ioo(T& x) { std::cout << x << "\n"; }

template<class T, class ReadFunc>
void f(T&& param, ReadFunc func) {
func(param);
}

int main() {
int x = 1;
std::string y = "something";
f(x, &::ioo);
}

最佳答案

ioo是一个函数模板,不是一个函数,所以你不能取它的地址。

然而,这会起作用,因为它实例化了函数 void ioo<int>(int&) :

f(x, &ioo<decltype(x)>);

正如 Jarod42 在评论中指出的那样,您可以将其变成 lambda:

f(x, [](auto& arg){ioo(arg);});

关于c++ - 在函数 C++ 中调用模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69403895/

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