Considera il seguente programma: #include <iostream> int main = ( std::cout << "C++ is excellent!\n", 195 ); Utilizzando g ++ 4.8.1 (mingw64) su sistema operativo Windows 7, il programma si compila e funziona correttamente, stampando: Il C ++ è eccellente! alla console. mainsembra essere una variabile globale piuttosto che una …
Nella sezione Operazioni simili a STL di Bjarne Stroustrup The C ++ Programming Language 4th edition, il codice seguente viene utilizzato come esempio di concatenamento :36.3.6 void f2() { std::string s = "but I have heard it works even if you don't believe in it" ; s.replace(0, 4, "" ).replace( …
Voglio definire una funzione che accetta un unsigned intargomento e restituisce un intmodulo congruente UINT_MAX + 1 all'argomento. Un primo tentativo potrebbe essere simile a questo: int unsigned_to_signed(unsigned n) { return static_cast<int>(n); } Ma come sa qualsiasi avvocato linguistico, il casting da non firmato a firmato per valori maggiori di …
È un comportamento indefinito stampare puntatori nulli con l'identificatore di %pconversione? #include <stdio.h> int main(void) { void *p = NULL; printf("%p", p); return 0; } La domanda si applica allo standard C e non alle implementazioni C.
Ho appena visto Stephan T. Lavavej parlare a CppCon 2018"Class Template Argument Deduction", dove a un certo punto dice per inciso: In C ++ le informazioni di tipo non fluiscono quasi mai all'indietro ... Ho dovuto dire "quasi" perché ci sono uno o due casi, forse di più ma molto …
https://godbolt.org/z/cyBiWY Riesco a vedere due 'some'letterali nel codice assembler generato da MSVC, ma solo uno con clang e gcc. Ciò porta a risultati completamente diversi dell'esecuzione del codice. static const char *A = "some"; static const char *B = "some"; void f() { if (A == B) { throw "Hello, …
Durante l'integrazione di un'app Django che non ho usato prima, ho trovato due modi diversi utilizzati per definire le funzioni nelle classi. L'autore sembra usarli entrambi molto intenzionalmente. Il primo è quello che io stesso uso molto: class Dummy(object): def some_function(self,*args,**kwargs): do something here self is the class instance L'altro …
Le parentesi in C ++ sono usate in molti posti: ad esempio nelle chiamate di funzione e nelle espressioni di raggruppamento per sovrascrivere la precedenza degli operatori. A parte le parentesi extra illegali (come intorno agli elenchi di argomenti delle chiamate di funzione), una regola generale, ma non assoluta, del …
Il codice seguente è abbastanza banale e mi aspettavo che si compilasse correttamente. struct A { struct B { int i = 0; }; B b; A(const B& _b = B()) : b(_b) {} }; Ho testato questo codice con g ++ versione 4.7.2, 4.8.1, clang ++ 3.2 e 3.3. …
class C { using namespace std; // error }; namespace N { using namespace std; // ok } int main () { using namespace std; // ok } Modifica : vuoi conoscere la motivazione dietro di esso.
Immaginiamo di avere una struttura per contenere 3 doppie con alcune funzioni membro: struct Vector { double x, y, z; // ... Vector &negate() { x = -x; y = -y; z = -z; return *this; } Vector &normalize() { double s = 1./sqrt(x*x+y*y+z*z); x *= s; y *= s; …
Considera la seguente dichiarazione: *((char*)NULL) = 0; //undefined behavior Invoca chiaramente un comportamento indefinito. L'esistenza di una tale dichiarazione in un dato programma significa che l'intero programma è indefinito o che il comportamento diventa indefinito solo una volta che il flusso di controllo raggiunge questa affermazione? Il seguente programma sarebbe …
Consideriamo questo metodo asincrono molto semplice: static async Task myMethodAsync() { await Task.Delay(500); } Quando lo compilo con VS2013 (compilatore pre Roslyn), la macchina a stati generata è una struttura. private struct <myMethodAsync>d__0 : IAsyncStateMachine { ... void IAsyncStateMachine.MoveNext() { ... } } Quando lo compilo con VS2015 (Roslyn) il …
Oggi ho un problema. Ho bisogno di una staticfunzione membro, constnon è un must ma una migliore. Ma non sono riuscito nei miei sforzi. Qualcuno può dire perché o come?
Sappiamo che una "variabile const" indica che una volta assegnata, non è possibile modificare la variabile, in questo modo: int const i = 1; i = 2; Il programma sopra non verrà compilato; gcc richiede un errore: assignment of read-only variable 'i' Nessun problema, posso capirlo, ma il seguente esempio …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.