gpt4 book ai didi

c++ - clang++ (3.3/Xcode) 中 std::function 的定义在哪里

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:35 35 4
gpt4 key购买 nike

问题已解决=>看到最后的更新

我正在尝试使用 std::function但看起来只包括 <functional>不提供定义。我试图编译以下代码:

#include <functional>
std::function<int(int)> f = nullptr;

以 c++11 作为编译选项:

% clang++ -c -std=c++11 t.cc

原因:

t.cc:3:6: error: no type named 'function' in namespace 'std'
std::function<int(int)> f = nullptr;
~~~~~^
t.cc:3:14: error: expected unqualified-id
std::function<int(int)> f = nullptr;
^
2 errors generated.

我错过了什么?我很了解 C++,但对 clang++/C++11 还很陌生,因此我想我缺乏重要的知识。

我在 MacOS X 10.8 上使用 clang++。

更新 1

我试过了a sample at cppreference.com site但它也不会编译。提供一些选项可以解决问题?

更新 2

使用 clang++ -c -std=c++11 -stdlib=libc++11 x.cc 尝试了来自 cppreference.com 的上述示例,编译器仍然说:

x.cc:1:10: fatal error: 'functional' file not found
#include <functional>
^
1 error generated.

函数在哪里?我想我应该给-stdlib=libc++11或其他但它也不起作用:

clang: error: invalid library name in argument '-stdlib=libc++11'

如何找到 -stdlib 的参数列表? (注意:在手册页中,唯一可用的选项是 libc++libstdc++ 它们都不起作用)

或者功能只是不起作用?

最佳答案

这与函数的定义无关。您没有链接器错误。你有一个编译器错误。问题大概是安装在真正的 sysroot 中的 BSD/GNU/Darwin 标准库不支持 C++11。您必须通过指定 -stdlib=libc++ 编译器标志来使用 Clang 附带的那个。

关于c++ - clang++ (3.3/Xcode) 中 std::function 的定义在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17849154/

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