Skip to content

败犬日报 2025-08-10

1. 怎么用 member init 实现 S("1234")

cpp
struct S {
    char code[5];
    S(char (&arr)[5]): code(/*这里应该怎么写*/) {}
};

S("1234");

C 风格数组肯定是做不到的,要改成 std::array,然后 std::to_array

cpp
struct S {
    std::array<char, 5> code;
    S(char (&arr)[5]): code(std::to_array(arr)) {}
};

当然用 code{arr[0], arr[1], ...} 也是可以的。