gpt4 book ai didi

c++ - 如果模板参数是函数指针

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

如果我有一个模板类

template <class T>
class foo
{ /**/ }

如果 T 是一个函数指针,我如何找到?

std::is_pointerstd::is_function 但没有 is_function_pointer

最佳答案

只需删除指针并检查结果是否为函数。

这是代码示例:

#include <utility>
#include <iostream>


template<class T> constexpr bool foo() {
using T2 = std::remove_pointer_t<T>;
return std::is_function<T2>::value;
}


int main() {
std::cout << "Is function? " << foo<void (int)>()
<< "; is function pointer? " << foo<int (*)()>() << "\n";

}

关于c++ - 如果模板参数是函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40998258/

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