Questions marquées «language-lawyer»

Pour des questions sur les subtilités des spécifications formelles ou faisant autorité des langages de programmation et des environnements.




3
std :: vector (ab) utilise le stockage automatique
Considérez l'extrait de code suivant: #include <array> int main() { using huge_type = std::array<char, 20*1024*1024>; huge_type t; } Évidemment, cela planterait sur la plupart des plates-formes, car la taille de pile par défaut est généralement inférieure à 20 Mo. Considérez maintenant le code suivant: #include <array> #include <vector> int main() …


3
Décltype C ++ et parenthèses - pourquoi?
Le sujet a été discuté auparavant , mais ce n'est pas un doublon. Lorsque quelqu'un demande la différence entre decltype(a)et decltype((a)), la réponse habituelle est - aest une variable, (a)est une expression. Je trouve cette réponse insatisfaisante. Tout d'abord, ac'est aussi une expression. Les options pour une expression primaire incluent, …


2
Pourquoi la grammaire BNF de C autorise-t-elle les déclarations avec une séquence vide de déclarateurs init?
En parcourant la grammaire BNF de C, j'ai trouvé étrange que la règle de production d'une déclaration ressemble à ceci (selon https://cs.wmich.edu/~gupta/teaching/cs4850/sumII06/The%20syntax%20of% 20C% 20in% 20Backus-Naur% 20form.htm ): <declaration> ::= {<declaration-specifier>}+ {<init-declarator>}* ; Pourquoi utiliser un *quantificateur (signifiant zéro ou plusieurs occurrences) pour le init-declarator? Cela permet aux instructions telles que …





3
Est-il correct de renvoyer la valeur de l'argument par défaut par référence const?
Est-il correct de renvoyer la valeur de l'argument par défaut par référence const comme dans les exemples ci-dessous: https://coliru.stacked-crooked.com/a/ff76e060a007723b #include <string> const std::string& foo(const std::string& s = std::string("")) { return s; } int main() { const std::string& s1 = foo(); std::string s2 = foo(); const std::string& s3 = foo("s"); std::string …



En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.