Herança de Modelo C++ e Construção de Cópia: Um static_assert Intrigante
2025-06-10

Este artigo explora uma questão intrigante sobre construtores de cópia em herança de modelo C++. A classe `Derived` herda da classe `Base`, onde o construtor de cópia de `Base` é excluído. No entanto, `Derived` define seu próprio construtor de cópia. Mesmo que este construtor tente copiar o objeto `Base` não copiável, `std::is_copy_constructible` ainda retorna verdadeiro. Isso ocorre porque o compilador apenas verifica a presença de um construtor de cópia não excluído, não sua instanciabilidade. O autor discute ainda as diferenças entre construtores de cópia explicitamente definidos e implicitamente definidos, e as implicações de mover a definição do construtor de cópia para fora da linha.
Desenvolvimento
Construção de Cópia