【问题标题】:'default argument': cannot convert from 'initializer list' to 'std::initializer_list'“默认参数”:无法从“初始化器列表”转换为“std::initializer_list”
【发布时间】:2017-04-28 14:37:47
【问题描述】:

我有以下

VS 15 中的函数:

void get(std::initializer_list<std::tuple<int,bool>> props = {{1,true},{1,true}})
{}

哪个输出:

'default argument':无法从'initializer list'转换为'std::initializer_list'

这里有什么问题? 我什至没有收到错误消息?非常感谢!

【问题讨论】:

  • 可能是 MSVC 错误?
  • 这对我来说在 VS15 上编译得很好。版本 14.0.25431.01 更新 3。
  • 无法用clang复制。

标签: c++ visual-studio visual-studio-2015 c++14


【解决方案1】:

我敢打赌你会收到这个错误

错误 C2440:“默认参数”:无法从“初始化器列表”转换为“std::initializer_list<:tuple>>”

因为你没有包含

#include <tuple>

这可以说是一个不是很明确的错误信息。确保同时包含所有其他需要的标头(例如&lt;initializer_list&gt;)。

【讨论】:

  • 别忘了#include &lt;initializer_list&gt;
猜你喜欢
  • 2019-02-27
  • 1970-01-01
  • 2016-12-22
  • 2018-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-04
相关资源
最近更新 更多