¿Existe una expresión de tiempo de compilación para copiar una matriz en un constructor de objetos? ¿Qué usa el constructor predeterminado? Quiero algo como esto:

struct A
{
    int arr[100];
    // I want something like this:
    A(const A& arg) : arr{arg.arr...} {}
    // what I use at the moment (a compile time loop):
    A(const A& arg)
    {
        static_for<0, N>([&](auto i) { arr[i] = arg.arr[i]; });
    }
};

No quiero usar std::array, y tengo información de depuración en el ctor de copia, por lo que no puedo confiar en el predeterminado.

1
lightxbulb 17 oct. 2019 a las 15:07

1 respuesta

La mejor respuesta

AFAIK, solo existe la solución basada en bucle por ahora si entiendo correctamente cómo enmarcó la pregunta, al menos a partir de ahora

De hay constexpr versión de copy_n

Otros usuarios deberían usar un contenedor adecuado: std::array

5
darune 17 oct. 2019 a las 12:16