Domande taggate «language-lawyer»

Per domande sulla complessità di specifiche formali o autorevoli di linguaggi e ambienti di programmazione.



2
È ancora sicuro eliminare nullptr in c ++ 0x?
In c++03esso è abbastanza chiaro che l'eliminazione di un puntatore nullo non ha alcun effetto. Infatti, è esplicitamente affermato in §5.3.5/2quanto: In entrambe le alternative, se il valore dell'operando di cancellazione è il puntatore nullo, l'operazione non ha effetto. Tuttavia, nell'attuale bozza di c++0xquesta frase sembra mancare. Nel resto della …

6
Funzioni pure: "Nessun effetto collaterale" implica "Sempre lo stesso output, dato lo stesso input"?
Le due condizioni che definiscono una funzione puresono le seguenti: Nessun effetto collaterale (ovvero sono consentite solo modifiche all'ambito locale) Restituisce sempre lo stesso output, dato lo stesso input Se la prima condizione è sempre vera, ci sono volte in cui la seconda condizione non è vera? Cioè è davvero …




3
std :: vector (ab) utilizza l'archiviazione automatica
Considera il seguente frammento: #include <array> int main() { using huge_type = std::array<char, 20*1024*1024>; huge_type t; } Ovviamente si bloccherebbe sulla maggior parte delle piattaforme, perché la dimensione dello stack predefinita è generalmente inferiore a 20 MB. Ora considera il seguente codice: #include <array> #include <vector> int main() { using …


3
Decltype e parentesi C ++ - perché?
L'argomento è stato discusso in precedenza , ma questo non è un duplicato. Quando qualcuno chiede la differenza tra decltype(a)e decltype((a)), la solita risposta è - aè una variabile, (a)è un'espressione. Trovo questa risposta insoddisfacente. Innanzitutto, aè anche un'espressione. Le opzioni per un'espressione primaria includono, tra le altre cose: (espressione) …


2
Perché la grammatica BNF di C consente dichiarazioni con una sequenza vuota di dichiaratori init?
Quando ho esaminato la grammatica BNF di C, ho pensato che fosse strano che la regola di produzione per una dichiarazione fosse simile a questa (secondo https://cs.wmich.edu/~gupta/teaching/cs4850/sumII06/The%20syntax%20of% 20C% 20in% 20Backus-Naur% 20form.htm ): <declaration> ::= {<declaration-specifier>}+ {<init-declarator>}* ; Perché usare un *quantificatore (che significa zero o più occorrenze) per il init-declarator? …




Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.