Articles of standard

Perché `i = ++ i + 1` comportamento non specificato?

Prendi in considerazione la seguente citazione ISO / IEC 14882: 2003 (E) dello standard C ++ (sezione 5, paragrafo 4): Tranne dove indicato, l’ordine di valutazione degli operandi dei singoli operatori e delle sottoespressioni delle singole espressioni e l’ordine in cui si verificano gli effetti collaterali non è specificato. 53) Tra il punto di sequenza […]

Perché C ++ emette numeri negativi quando si utilizza modulo?

Matematica : Se hai un’equazione come questa: x = 3 mod 7 x potrebbe essere … -4, 3, 10, 17, … o più in generale: x = 3 + k * 7 dove k può essere qualsiasi intero. Non so se un’operazione di modulo è definita per la matematica, ma il fattore ring lo è […]

Calcolo della lunghezza di una stringa C in fase di compilazione. È davvero un constexpr?

Sto cercando di calcolare la lunghezza di una stringa letterale al momento della compilazione. Per fare ciò sto usando il seguente codice: #include int constexpr length(const char* str) { return *str ? 1 + length(str + 1) : 0; } int main() { printf(“%d %d”, length(“abcd”), length(“abcdefgh”)); } Tutto funziona come previsto, il programma stampa […]

Moduli C ++: perché sono stati rimossi da C ++ 0x? Torneranno più tardi?

Ho appena scoperto questa vecchia bozza di C ++ 0x sui moduli in C ++ 0x. L’idea era di uscire dall’attuale sistema .h / .cpp scrivendo solo i file .cpp che avrebbero poi generato i file del modulo durante la compilazione, che a loro volta sarebbero stati usati dagli altri file .cpp. Questa sembra davvero […]

Printf (“% x”, 1) invoca un comportamento non definito?

Secondo lo standard C (paragrafo 6.5.2.2 6) Se l’espressione che denota la funzione chiamata ha un tipo che non include un prototipo, le promozioni intere vengono eseguite su ogni argomento e gli argomenti che hanno il tipo float vengono promossi a doppio. Queste sono chiamate promozioni di argomenti predefinite. Se il numero di argomenti non […]

Ci sono suggerimenti per lo sviluppo di un codice di codifica C # / documento sulle migliori pratiche?

Sono un recente laureato AI (circa 2 anni) che lavora per una modesta operazione. Mi è venuto in mente (principalmente perché sono il primo ‘adottante’ nel dipartimento) a creare un documento di base (leggi utile?) C # per la codifica degli standard. Penso che dovrei spiegare che sono probabilmente il più giovane ingegnere del software […]

`Long` è garantito che abbia almeno 32 bit?

Dalla mia lettura dello standard C ++, ho sempre capito che le dimensioni dei tipi fondamentali integrali in C ++ erano le seguenti: sizeof(char) <= sizeof(short int) <= sizeof(int) <= sizeof(long int) Ho dedotto questo dal 3.9.1 / 2: Esistono quattro tipi di interi con segno: “signed char”, “short int”, “int” e “long int”. In […]

Chiamata al metodo membro membro C ++ sull’istanza di class

Ecco un piccolo programma di test: #include class Test { public: static void DoCrash(){ std::cout<< "TEST IT!"<< std::endl; } }; int main() { Test k; k.DoCrash(); // calling a static method like a member method… std::system("pause"); return 0; } Su VS2008 + SP1 (vc9) compila bene: la console mostra solo “TEST IT!”. Per quanto ne […]

Cosa dice lo standard SQL sull’utilizzo di backtick (`)?

Una volta ho passato ore a eseguire il debug di una semplice query SQL utilizzando mysql_query() in PHP/MySQL solo per rendermi conto che mi mancava il bactick attorno al nome della tabella. Da quel momento lo usavo sempre attorno ai nomi delle tabelle. Ma quando ho usato lo stesso in SQLite/C++ , il simbolo non […]

Spazi negli URL?

w3fools afferma che gli URL possono contenere spazi: http://w3fools.com/#html_urlencode È vero? Come può un URL contenere uno spazio non codificato? Ho l’impressione che la riga di richiesta di una richiesta HTTP utilizzi uno spazio come delimitatore, essendo formattato come {the method}{space}{the path}{space}{the protocol} : GET /index.html http/1.1 Quindi, come può un URL contenere uno spazio? […]