Я попытался добавить свой собственный конструктор для типа std::array
, но я не уверен, что это возможно и как это сделать...
Я пробовал что-то вроде этого:
typedef unsigned char byte_t;
namespace std {
template<std::size_t _Nm>
array::array(std::vector<byte_t> data)
{
// Some content
}
}
Я хочу создать очень простой механизм преобразования std::vector<byte_t>
в std::array<byte_t, size>
.
- Это возможно?
- Как я могу это сделать?
Я использую С++ 14 (и я не могу использовать в своем проекте более новые стандарты)
make_array
, которая возвращает массив и принимает вектор в качестве аргумента. - person M.M   schedule 19.07.2018namespace std
. Это не имеет значения, потому что вы не можете добавить конструктор в класс, которым вы не владеете, вnamespace std
или нет. FYIstd::array
не имеет конструкторов по дизайну. - person n. 1.8e9-where's-my-share m.   schedule 19.07.2018char c = 10
. Если я не могу добавить конструктор, я хотел бы добавитьoperator=
. - person BartekPL   schedule 19.07.2018operator=
, потому что он особенный, но вы можете добавить какой-нибудь другой оператор, например<<
(в вашем собственном пространстве имен). - person n. 1.8e9-where's-my-share m.   schedule 19.07.2018std::vector
? - person Daniel Langr   schedule 19.07.2018