std::array 初始化 Visual Studio 2010
std::array initalization with Visual Studio 2010
我在使用 Visual Studio 2010 初始化 std::array 时遇到问题。我知道使用现代编译器我可能会执行以下操作
#include <array>
class A
{
A() : arr({1,2,3,4,5,6}) {}
public:
std::array<float, 6> arr;
};
但是,Visual Studio 2010 不允许这样做(因为它不完全支持 C++11
)。但是,我还缺少其他方法吗?
唉,没有。 聚合初始化 是一个 C++11 概念,Visual Studio 2010 实现了 C++03 标准。
另一种方法是在 class 构造函数中手动构建数组。
如果您需要能够创建 const
个 A
的实例,那么在 static
函数中构建数组,然后将内容复制到 arr
.
我在使用 Visual Studio 2010 初始化 std::array 时遇到问题。我知道使用现代编译器我可能会执行以下操作
#include <array>
class A
{
A() : arr({1,2,3,4,5,6}) {}
public:
std::array<float, 6> arr;
};
但是,Visual Studio 2010 不允许这样做(因为它不完全支持 C++11
)。但是,我还缺少其他方法吗?
唉,没有。 聚合初始化 是一个 C++11 概念,Visual Studio 2010 实现了 C++03 标准。
另一种方法是在 class 构造函数中手动构建数组。
如果您需要能够创建 const
个 A
的实例,那么在 static
函数中构建数组,然后将内容复制到 arr
.