linux-BR.org

Notícias de software livre e tecnologias

Então você pode ligar
void f (span ) como f (span ({1,2,3})) ou f (il) ou mesmo f ({{1,2,3}}),
mas não como f ({1,2,3}) diretamente (Godbolt).Quase todos os construtores do STL são implícitos e não explícitos;
Por exemplo, {& i, & j} converte implicitamente em vetor , o que significa
O mesmo acontece com {“A”, “B”}.Por exemplo,
Considere este conjunto de sobrecarga (Godbolt):
Se o construtor implícito do livro leva duas strings std ::, então isso é uma chamada para
add_to_library (Const Book &) com um livro temporário.Isto é, a bem-formada de auto [x, y, z] = a
deve implicar a bem-formação de a a = {x, y, z}.Isso é apenas “inicialização uniforme”, o
A mesma coisa std :: par faz.

Fonte: https://quuxplusone.github.io/blog/2023/04/08/most-ctors-should-be-explicit/