Existe uma maneira de inicializar uma estrutura filho usando chaves, incluindo variáveis de membro da estrutura base. Estou tentando o abaixo, mas não compila (usando VS e C++ 20). Não quero criar um construtor e gostaria de usar uma construção de uma linha .
struct Base
{
int n;
};
struct Derived : Base
{
std::string s;
};
static const Derived d1{ .s = "Hi", { .n = 1 } }; //fails to compile
static const Derived d2{ 1, { "Hi" } }; //fails to compile
static const Derived d3{ 1, "Hi" }; //fails to compile
static const Derived d4(1, "Hi"); //fails to compile
EDIT : d4, d3
na verdade, compile bem.
Isso funciona para mim, https://godbolt.org/z/oYWYr5Gc7 :