gpt4 book ai didi

c++ - 是否可以在模板中定义指向外部 -"C"函数类型的指针?

转载 作者:可可西里 更新时间:2023-11-01 16:35:57 27 4
gpt4 key购买 nike

我想将一个公共(public) typedef 添加到一个模板,用于指向使用“C”语言链接的函数接受一个参数的指针。

我试过:

extern "C" {
template <typename return_t_, typename arg1_t_>
struct test
{
typedef return_t_ (*C_fun1_t)(arg1_t_);
};
}

和:

template <typename return_t_, typename arg1_t_>
struct test
{
extern "C" {
typedef return_t_ (*C_fun1_t)(arg1_t_);
}
};

和:

template <typename return_t_, typename arg1_t_>
struct test
{
extern "C" typedef return_t_ (*C_fun1_t)(arg1_t_);
};

没有成功。

我正在努力实现的目标是否可行?

最佳答案

C++03,§7.5p4:

A linkage-specification shall occur only in namespace scope. … A C language linkage is ignored for the names of class members and the member function type of class member functions.

不幸的是,您根本无法在当前的 C++ 中执行此操作。此文本在最新的 C++0x 草案中未更改,但“模板类型定义”可能能够完成它。

关于c++ - 是否可以在模板中定义指向外部 -"C"函数类型的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4866433/

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