Estou respondendo a isso como um lembrete, para citar meus comentários sobre a resposta "user1949346" desse mesmo OP.
Então, como muitos já responderam: de qualquer maneira está bem. Seguido por enfatiza suas próprias impressões.
Introdutório, como também nos comentários nomeados anteriores declarados, minha opinião é que as C++extensões de cabeçalho são propostas, .hcaso não haja realmente nenhuma razão contra isso.
Como os documentos ISO / IEC usam essa notação de arquivos de cabeçalho e nenhuma correspondência de string .hppocorre mesmo nas documentações de idiomas deles C++.
Mas agora estou buscando uma razão aprovável PORQUE de qualquer maneira está ok, e especialmente porque não é assunto da linguagem em si.
Aqui vamos nos.
A C++documentação (na verdade, estou tomando referência da versão N3690) define que um cabeçalho deve estar em conformidade com a seguinte sintaxe:
2.9 Nomes de cabeçalho
header-name:
< h-char-sequence >
" q-char-sequence "
h-char-sequence:
h-char
h-char-sequence h-char
h-char:
any member of the source character set except new-line and >
q-char-sequence:
q-char
q-char-sequence q-char
q-char:
any member of the source character set except new-line and "
Portanto, como podemos extrair desta parte, o nome do arquivo de cabeçalho também pode ser válido no código-fonte. Exceto por conter '\n'caracteres e, dependendo se ele deve ser incluído, <>não é permitido que contenha a >. Ou, caso contrário, se for incluído por ""-include, não será permitido conter a ".
Em outras palavras: se você tinha um ambiente que suporta nomes de arquivos como prettyStupidIdea.>, inclua:
#include "prettyStupidIdea.>"
seria válido, mas:
#include <prettyStupidIdea.>>
seria inválido. O contrário é o mesmo.
E até mesmo
#include <<.<>
seria um nome de arquivo de cabeçalho inclusivo válido.
Mesmo isso seria conforme C++, seria uma idéia muito estúpida, tho.
E é por isso que também .hppé válido.
Mas não é um resultado dos comitês que elaboram decisões para o idioma!
Portanto, discutir sobre o uso .hppé o mesmo que fazê-lo .cc, .mmou o que mais eu li em outros posts sobre esse tópico.
Eu tenho que admitir que não tenho idéia de onde .hppveio 1 , mas eu apostaria que um inventor de alguma ferramenta de análise, IDE ou outra coisa preocupada C++chegou a essa idéia para otimizar alguns processos internos ou apenas para inventar alguns (provavelmente mesmo para eles necessariamente ) novas convenções de nomenclatura.
Mas isso não faz parte do idioma.
E sempre que alguém decide usá-lo dessa maneira. Pode ser que ele goste mais ou porque algumas aplicações do fluxo de trabalho exijam, nunca 2 é um requisito da linguagem. Portanto, quem diz que "o pp é porque é usado com C ++" simplesmente está errado em relação à definição de linguagens.
C ++ permite qualquer coisa que respeite o parágrafo anterior. E se houver algo que o comitê se proponha a usar, ele será usado, .hpois essa é a extensão processada em todos os exemplos do documento ISO.
Conclusão:
Contanto que você não veja / sinta nenhuma necessidade de usar .hover .hppou vice-versa, não deve se preocupar. Porque ambos formariam um nome de cabeçalho válido com a mesma qualidade em relação ao padrão. E, portanto, qualquer coisa que EXIGE que você use .hou .hppé uma restrição adicional do padrão que pode até estar em contradição com outras restrições adicionais que não estão em conformidade. Mas como o OP não menciona nenhuma restrição adicional de idioma, esta é a única resposta correta e aprovada para a pergunta
" * .h ou * .hpp para suas definições de classe " é:
Ambos são igualmente corretos e aplicáveis, desde que não haja restrições externas.
1 Pelo que sei, aparentemente, é a estrutura de impulso que surgiu com essa .hppextensão.
2 É claro que não posso dizer o que algumas versões futuras trarão com ele!