Especifica que um construtor ou função de conversão (desde C++ 11) é explícito, ou seja, não pode ser usado para conversões implícitas e inicialização de cópia .
Vamos à um exemplo, você possui o seguinte código:
A função do_something recebe um parâmetro do tipo TerminalRoot, mas o compilador converte automaticamente para int:
E você não quer isso, você quer o que o tipo correto seja passado, pois você quer saber se há bug nesse tipo. Então você usa a palavra-chave explicit, mas ao compilar há um erro ao compilar:
Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!