clang-tidy v. -Weffc++
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 30/100
Direção de pesquisa
Comece pela documentação de clang-tidy's readability-redundant-member-init e pelas discussões vinculadas mapbox/cpp#37, wagyu#69 e wagyu#70; nenhum arquivo ou teste do repositório foi identificado. Determine uma abordagem acordada para -Weffc++, as orientações do clang-tidy e a detecção de membros não inicializados; a tarefa estará concluída quando houver uma recomendação e uma configuração documentadas.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Context
Recent versions of clang-tidy added readability-redundant-member-init: https://clang.llvm.org/extra/clang-tidy/checks/readability-redundant-member-init.html
This is handy! When a class member has a default initializer it is redundent to initialize it in the member list.
But, because some types don't have default initializers, forgetting to initialize them in the member list (or using c++11 initialization in the class definition) can lead to serious trouble like mapbox/wagyu#69 - refs mapbox/wagyu#70.
So, this is the reason, at https://github.com/mapbox/cpp/issues/37#issuecomment-336200744, that we recommend using g++ and the -Weffc++ flag because it can catch this (note, clang++ plus -Weffc++ cannot):
-Weffc++ - useful when building with g++ (does not do much with clang++). With g++ it can catch uninitialized class members and prevent crashes like mapbox/wagyu#69 - refs mapbox/wagyu#70
Problem
-Weffc++will warn on all class members not explicitly initialized in the initializer listclang-tidywill automatically remove variables from the initializer list that have default constructors
So, the two will fight: causing each other warnings. For this reason I think we should likely:
- let clang-tidy win
- recommend no longer using g++ with
-Weffc++ - figure out what alternative way we can catch when members, without default initializers, are uninitialized (without needing to use
-Weffc++). Maybe anotherclang-tidycheck?
- Linguagem predominante
- Sem dados de linguagem
- Estrelas
- 110
- Forks
- 17
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
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 mapbox/cpp
-
glossary
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 68/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
-
Docs on ABIsAberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 30/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
-
Add namespace to glossaryAbertaglossary
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 58/100
Issues semelhantes
-
good first issue hacktoberfest
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
RogueAlg0/taken#387 · 4 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
raullenchai/Rapid-MLX#4042 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
code-yeongyu/oh-my-openagent#9454 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
smart-village-solutions/sva-studio#1654 ·
Mantenedores costumam responder em até 1 dia