【发布时间】:2017-06-07 00:08:18
【问题描述】:
我在链接我的目标文件时遇到错误:
#include <cstdint>
#include <array>
enum SystemType : uint8_t { AC, DC, HCP, EFF };
template<SystemType TYPE> struct System;
template<>
struct System<AC> {
public:
static constexpr size_t number_of_sockets = 2;
static constexpr std::array<size_t, number_of_sockets> object_per_socket { { 12, 6 } };
};
我正在使用它来将数据分配到一个向量中。
terminal->no_obj_per_system.assign(
Sytem<AC>::object_per_socket.begin(),
Sytem<AC>::object_per_socket.end());
我在 mac Os 上使用 clang。
【问题讨论】:
-
你是否包含标题
? -
是的,当然。
-
这个表达式有错别字Sytem
::objet_per_socket.begin(),应该是System而不是Sytem -
您的问题几乎肯定是您没有发布的问题。请发布一个完整的(并且最少 - 足以触发错误的代码)示例:即所有相关文件,以及您执行的实际命令行和您得到的错误的实际文本。
-
@aaaramoon 问题是你必须在类定义之外定义std::array类型的静态数据成员。