-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs(cpp): Introduce Type-specific Guidelines
with rules for std::unordered_map
.
#28
base: main
Are you sure you want to change the base?
Conversation
WalkthroughThe pull request introduces a new section in the C++ contribution guidelines focusing on type-specific guidelines for Changes
Possibly related PRs
Suggested reviewers
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
docs/dev-guide/contrib-guides-cpp.md (1)
163-174
: Improve grammar and punctuation consistency.Consider these refinements:
- Line 163: Change "for access existing keys" to "for accessing existing keys"
- Line 164: Replace "by accident" with "accidentally"
- Lines 169, 171, 174: Add periods after each list item for consistency
- * This behaviour is error-prone for access existing keys because: - * You could create a kv-pair by accident without explicitly knowing whether the corresponding + * This behaviour is error-prone for accessing existing keys because: + * You could accidentally create a kv-pair without explicitly knowing whether the corresponding key already existed. * This behaviour is inefficient for creating new kv-pairs because the value must be first default constructed. * Instead, you should use the following as required: - * Use [`contains`][std::unordered_map::contains] to check whether a key exists (available since + * Use [`contains`][std::unordered_map::contains] to check whether a key exists (available since C++20). - * Use [`emplace`][std::unordered_map::emplace] to construct and insert kv-pairs efficiently. + * Use [`emplace`][std::unordered_map::emplace] to construct and insert kv-pairs efficiently. - * Use [`at`][std::unordered_map::at] to access the value of a given key with internal sanity + * Use [`at`][std::unordered_map::at] to access the value of a given key with internal sanity checks.🧰 Tools
🪛 LanguageTool
[uncategorized] ~163-~163: This verb may not be in the correct form. Consider using a different form for this context.
Context: .... * This behaviour is error-prone for access existing keys because: * You could ...(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
[style] ~164-~164: ‘by accident’ might be wordy. Consider a shorter alternative.
Context: ...cause: * You could create a kv-pair by accident without explicitly knowing whether the ...(EN_WORDINESS_PREMIUM_BY_ACCIDENT)
[uncategorized] ~169-~169: A punctuation mark might be missing here.
Context: ...se the following as required: * Use [contains
][std::unordered_map::contains]...(AI_EN_LECTOR_MISSING_PUNCTUATION)
[uncategorized] ~171-~171: A punctuation mark might be missing here.
Context: ...available since C++20). * Use [emplace
][std::unordered_map::emplace] t...(AI_EN_LECTOR_MISSING_PUNCTUATION)
[uncategorized] ~174-~174: A punctuation mark might be missing here.
Context: ...internal sanity checks. * Use [try_emplace
][std::unordered_map::try_em...(AI_EN_LECTOR_MISSING_PUNCTUATION)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
docs/dev-guide/contrib-guides-cpp.md
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/dev-guide/contrib-guides-cpp.md
[uncategorized] ~163-~163: This verb may not be in the correct form. Consider using a different form for this context.
Context: .... * This behaviour is error-prone for access existing keys because: * You could ...
(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
[style] ~164-~164: ‘by accident’ might be wordy. Consider a shorter alternative.
Context: ...cause: * You could create a kv-pair by accident without explicitly knowing whether the ...
(EN_WORDINESS_PREMIUM_BY_ACCIDENT)
[uncategorized] ~169-~169: A punctuation mark might be missing here.
Context: ...se the following as required: * Use [contains
][std::unordered_map::contains]...
(AI_EN_LECTOR_MISSING_PUNCTUATION)
[uncategorized] ~171-~171: A punctuation mark might be missing here.
Context: ...available since C++20). * Use [emplace
][std::unordered_map::emplace] t...
(AI_EN_LECTOR_MISSING_PUNCTUATION)
[uncategorized] ~174-~174: A punctuation mark might be missing here.
Context: ...internal sanity checks. * Use [try_emplace
][std::unordered_map::try_em...
(AI_EN_LECTOR_MISSING_PUNCTUATION)
🔇 Additional comments (3)
docs/dev-guide/contrib-guides-cpp.md (3)
154-157
: LGTM! Section headers are well-structured.The new section headers follow the document's existing hierarchy and formatting conventions.
158-179
: LGTM! Comprehensive and technically accurate guidelines.The guidelines effectively explain the pitfalls of the
[]
operator and provide appropriate alternatives. The recommendation to maintain consistency across map-like containers is particularly valuable.🧰 Tools
🪛 LanguageTool
[uncategorized] ~163-~163: This verb may not be in the correct form. Consider using a different form for this context.
Context: .... * This behaviour is error-prone for access existing keys because: * You could ...(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
[style] ~164-~164: ‘by accident’ might be wordy. Consider a shorter alternative.
Context: ...cause: * You could create a kv-pair by accident without explicitly knowing whether the ...(EN_WORDINESS_PREMIUM_BY_ACCIDENT)
[uncategorized] ~169-~169: A punctuation mark might be missing here.
Context: ...se the following as required: * Use [contains
][std::unordered_map::contains]...(AI_EN_LECTOR_MISSING_PUNCTUATION)
[uncategorized] ~171-~171: A punctuation mark might be missing here.
Context: ...available since C++20). * Use [emplace
][std::unordered_map::emplace] t...(AI_EN_LECTOR_MISSING_PUNCTUATION)
[uncategorized] ~174-~174: A punctuation mark might be missing here.
Context: ...internal sanity checks. * Use [try_emplace
][std::unordered_map::try_em...(AI_EN_LECTOR_MISSING_PUNCTUATION)
189-192
: LGTM! Reference links are well-organized.All method references are properly linked to their corresponding cppreference.com documentation.
References
This PR introduces a new section in C++ guideline: Type-specific Guidelines.
As the initial write-up, this PR contains rules for
std::unordered_map
.Description
task serve
.Summary by CodeRabbit
std::unordered_map
in C++[]
operator