c++ - 无法转换 'std::array'在初始化时'浮动'
问题描述
我遇到了这段代码。它在 Windows 上编译。(带有 MSVC2017 套件的 QT)但它没有在 Linux 中(带有 gcc 4.9.3 的 QT)
我已经阅读了模板数组、模板函数、参数打包。我单独理解它们,但我很难把它们放在一起来弄清楚
util::make_array<6>(1.0f)
最后一行是如何解释为浮点数的。假设我的方向是正确的。
namespace util { // @util
namespace detail
{
template <typename T, std::size_t...Is>
std::array<T, sizeof...(Is)> make_array(const T& value, std::index_sequence<Is...>)
{
return { { (static_cast<void>(Is), value)... } };
}
}
template <std::size_t N, typename T>
std::array<T, N> make_array(const T& value)
{
return detail::make_array(value, std::make_index_sequence<N>());
}
}
std::array<float, 6> c_array {{ util::make_array< 6 >(0.1f) }}; //<- error here, "cannot convert 'std::array<float, 6ul>' to 'float' in initialization"
错误在最后一行:“初始化时无法将 'std::array' 转换为 'float'”
解决方案
推荐阅读
- php - PHP 与 CSS 兼容吗?
- r - 需要帮助用 R 中的值替换列中找到的字符串
- mysql - SQL - AND 通过第二个表的记录过滤第一个表(微不足道与否?)
- sharepoint - 我希望每个 SharePoint Online 页面顶部的搜索字段提供整个网站集的结果,即使我在子网站上
- php - 指纹 PHP 文件
- spring-boot - 尝试在 IntelliJ 上构建时出现 maven 错误
- android - ARCore。根据相机在现实世界中的方向旋转 3D 对象
- c# - 使用 .NET Framework (C#) 实现 dotnet watch
- excel - 如何在 sheet6 范围“b2:b”中的所有单元格中搜索 sheet2 范围 m7:m1000 中的匹配值
- java - Gradle 未将库导出到 MavenLocal