小编Dav*_*ech的帖子

C++17 <functional> 模板参数推导不适用于 Xcode 10.1

我一直在使用 C++17(及以后)使用模板参数推导,并试图从cppreference.com编译这个确切的示例

#include <functional>

int func(double) { return 0; }
int main() {
  std::function f{func}; // guide #1 deduces function<int(double)>
  int i = 5;
  std::function g = [&](double) { return i; }; // guide #2 deduces function<int(double)>
}
Run Code Online (Sandbox Code Playgroud)

它在该页面上的基于 Web 的编译器中编译并运行良好,但是当我尝试在我的 Macbook Pro 上编译它时,它失败了,说

错误:没有可行的构造函数或推导指南来推导“函数”的模板参数

我已经在设置为 C++17 的 Xcode (v10.1) 项目中尝试过它,并且直接使用 -std=c++17 运行 clang。

我还在不同的在线编译器上编译了上面的例子,比如这里:https : //godbolt.org/z/ERliha

我还验证了 std::pair 的类型推导工作,所以我不知道:

  1. 当我搞乱交叉编译器时,我以某种方式搞砸了我的工具链。
  2. Apple 的工具链中缺少此类的推导指南。
  3. 我正在运行一个旧的工具链(我不知道如何检查)
  4. ...(任何其他原因)

c++ xcode

6
推荐指数
1
解决办法
866
查看次数

标签 统计

c++ ×1

xcode ×1