Domande taggate «c++»

C ++ è un linguaggio di programmazione generico. È stato originariamente progettato come estensione di C e ha una sintassi simile, ma ora è un linguaggio completamente diverso. Utilizzare questo tag per domande sul codice (da compilare) compilato con un compilatore C ++. Utilizzare un tag specifico della versione per domande relative a una revisione standard specifica [C ++ 11], [C ++ 14], [C ++ 17] o [C ++ 20], ecc.

4
Come memorizzare gli argomenti del modello variadico?
È possibile memorizzare un pacchetto di parametri in qualche modo per un uso successivo? template <typename... T> class Action { private: std::function<void(T...)> f; T... args; // <--- something like this public: Action(std::function<void(T...)> f, T... args) : f(f), args(args) {} void act(){ f(args); // <--- such that this will be possible …




1
Come funziona l'elisione della copia garantita?
In occasione della riunione 2016 degli standard ISO C ++ di Oulu, una proposta denominata Eliminazione della copia garantita tramite categorie di valori semplificate è stata votata in C ++ 17 dal comitato degli standard. Come funziona esattamente l'elisione della copia garantita? Copre alcuni casi in cui l'elisione della copia …

14
C ++: stampa il valore enum come testo
Se ho un'enumerazione come questa enum Errors {ErrorA=0, ErrorB, ErrorC}; Quindi voglio stampare su console Errors anError = ErrorA; cout<<anError;/// 0 will be printed ma quello che voglio è il testo "ErrorA", posso farlo senza usare if / switch? E qual è la tua soluzione per questo?
89 c++  enums 



2
Che cos'è COM (Component Object Model) in poche parole? [chiuso]
Chiuso . Questa domanda deve essere più mirata . Attualmente non accetta risposte. Vuoi migliorare questa domanda? Aggiorna la domanda in modo che si concentri su un problema solo modificando questo post . Chiuso 7 anni fa . Migliora questa domanda Sembra che gli oggetti COM siano oggetti di uso …
89 c++  com 

8
I rami con un comportamento indefinito possono essere considerati irraggiungibili e ottimizzati come codice morto?
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 …

5
Passaggio di puntatori condivisi come argomenti
Se dichiaro un oggetto racchiuso in un puntatore condiviso: std::shared_ptr<myClass> myClassObject(new myClass()); quindi ho voluto passarlo come argomento a un metodo: DoSomething(myClassObject); //the called method void DoSomething(std::shared_ptr<myClass> arg1) { arg1->someField = 4; } Quanto sopra incrementa semplicemente il conteggio dei riferimenti di shared_pt e tutto va bene? O lascia un …

7
Perché non possiamo dichiarare un std :: vector <AbstractClass>?
Dopo aver trascorso un po 'di tempo a sviluppare in C #, ho notato che se dichiari una classe astratta allo scopo di usarla come interfaccia non puoi istanziare un vettore di questa classe astratta per memorizzare istanze delle classi figlie. #pragma once #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; …



4
Perché il modello di funzione non può essere parzialmente specializzato?
So che la specifica del linguaggio proibisce la specializzazione parziale del modello di funzione. Vorrei conoscere la logica del perché lo vieta? Non sono utili? template&lt;typename T, typename U&gt; void f() {} //allowed! template&lt;&gt; void f&lt;int, char&gt;() {} //allowed! template&lt;typename T&gt; void f&lt;char, T&gt;() {} //not allowed! template&lt;typename T&gt; void …

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.