gpt4 book ai didi

c++ - GMP 内存管理功能的 Clang 错误

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

我有一些使用 GMP 的代码,可以使用 g++ 编译和运行。

...
// get ptrs to GMP memory management functions
void *(*alloc_func_ptr) (size_t);
void *(*free_func_ptr) (void *, size_t);
mp_get_memory_functions(&alloc_func_ptr, NULL, &free_func_ptr);
...

但是当我用最新的 clang++ 编译它时它会抛出这个错误

gmpxx_boost_serialization.h:127: error: no matching function for call to '__gmp_get_memory_functions'
mp_get_memory_functions(&alloc_func_ptr, NULL, &free_func_ptr);

其中 mp_get_memory_functions 是一个宏

#define mp_get_memory_functions __gmp_get_memory_functions
__GMP_DECLSPEC void mp_get_memory_functions (void *(**) (size_t),
void *(**) (void *, size_t, size_t),
void (**) (void *, size_t)) __GMP_NOTHROW;

为什么 clang 报错?

最佳答案

尝试改变:

void *(*free_func_ptr) (void *, size_t);

到:

void (*free_func_ptr) (void *, size_t);

根据声明,“mp_get_memory_functions”的第三个参数是函数指针的地址(返回“void”而不是“void *”的函数)

关于c++ - GMP 内存管理功能的 Clang 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25077208/

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