Const as Much as Possible (Not!)
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Documentação
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- cpp
- Domínio
- documentation
Direção de pesquisa
Nenhum arquivo ou teste é nomeado na issue. Comece localizando a seção de best practices que aborda parâmetros de função const e, em seguida, compare suas orientações com os exemplos em C e C++ do relatório; considera-se concluído quando a documentação distinguir claramente a constness direta dos parâmetros da constness dos dados apontados.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
While "Const as Much as Possible" is generally good practice, const should not be directly used on function declaration parameters, including member functions.
A quick example:
void foo (int x);
void foo (int const x) {return x * 2;}
void bar (char const * s);
void bar (char const * const s) {puts(s);}
Notice I said "directly". Hence s isn't const in the declaration, but is in the definition (direct), but what s points at is const in both, and must match in both (indirect).
The reason for doing this is to not leak a function's implementation details. Because whether a function treats a parameter variable as const or not is an implementation detail of the function. And if a function gets modified such that its parameter is no longer treated as const, then callers of that function shouldn't have to be recompiled.
This is a difference between C and C++. In C, the function definition's parameter type(s) must exactly match that of the function declarations. (At least it used to. I haven't actually developed anything significant with modern C.)
- Linguagem predominante
- Sem dados de linguagem
- Estrelas
- 8.9k
- Forks
- 903
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de cpp-best-practices/cppbestpractices
-
Broken Link Chapter 2: Use_the_Tools_AvailableTalvez livre de novo @vishesharma20 assumiu há 172 dias e não há nenhum pull request aberto. Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 64/100
cpp-best-practices/cppbestpractices#169 · 1 comentário ·
-
Broken Link - 11 Further ReadingTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 55/100
cpp-best-practices/cppbestpractices#168 · 1 comentário ·
-
C++ PracticeAberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 10/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 35/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 45/100
cpp-best-practices/cppbestpractices#160 · 1 comentário ·
Todas as issues de cpp-best-practices/cppbestpractices
Issues semelhantes
-
area-multi-tenancy p1-recommended technical-debt
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
Mantenedores costumam responder em até 1 dia
-
Docs: 2 broken linksAbertaBug pulumi/pulumi-terraform-bridge R2 S2
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
pulumi/pulumi-terraform-bridge#3713 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
-
[Sync EN] Document the timezone of DateTime(Immutable)::createFromTimestamp() (#6074)Talvez já em andamento @lacatoire assumiu hoje. Abertasync-en
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
[Sync EN] Document the timezone of DateTime(Immutable)::createFromTimestamp() (#6074)Talvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Abertasync-en
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
Mantenedores costumam responder em até 1 dia