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.

1
Perché il vettore di libc ++ <bool> :: const_reference non è bool?
La sezione 23.3.7 Classe vector&lt;bool&gt;[vector.bool], paragrafo 1 afferma: template &lt;class Allocator&gt; class vector&lt;bool, Allocator&gt; { public: // types: typedef bool const_reference; ... Tuttavia questo programma non riesce a compilare quando si utilizza libc ++: #include &lt;vector&gt; #include &lt;type_traits&gt; int main() { static_assert(std::is_same&lt;std::vector&lt;bool&gt;::const_reference, bool&gt;{}, "?"); } Inoltre noto che lo standard …

5
Usare assert () in C ++ è una cattiva pratica?
Tendo ad aggiungere molte asserzioni al mio codice C ++ per semplificare il debug senza influire sulle prestazioni delle build di rilascio. Ora, assertè una macro C pura progettata senza i meccanismi C ++ in mente. Il C ++ d'altra parte definisce std::logic_error, che è pensato per essere lanciato nei …

7
Const_cast è sicuro?
Non riesco a trovare molte informazioni su const_cast. Le uniche informazioni che sono riuscito a trovare (su Stack Overflow) sono: La const_cast&lt;&gt;()è usato per aggiungere / rimuovere const (Ness) (o volatili-Ness) di una variabile. Questo mi rende nervoso. L'utilizzo di un const_castcomportamento imprevisto potrebbe causare? E allora? In alternativa, quando …

1
Cosa significa?
Ho 2 classi: class base { virtual void foo() {}; }; class derived : public base { void foo() { base::foo(); } }; Ho fatto un errore e ho scritto base:foo();invece di base::foo();. Il codice è stato compilato ed eseguito, ma segfault. Non so come posso cercarlo su Google e …
92 c++  syntax 

6
Perché il C ++ non consente le strutture anonime?
Alcuni compilatori C ++ consentono unioni e strutture anonime come estensione del C ++ standard. È un po 'di zucchero sintattico che a volte è molto utile. Qual è la logica che impedisce che ciò faccia parte dello standard? C'è un ostacolo tecnico? Uno filosofico? O semplicemente non abbastanza di …
92 c++  struct  unions 





2
Implementazione lambda C ++ 11 e modello di memoria
Vorrei alcune informazioni su come pensare correttamente alle chiusure C ++ 11 e std::functionin termini di come vengono implementate e come viene gestita la memoria. Anche se non credo nell'ottimizzazione prematura, ho l'abitudine di considerare attentamente l'impatto sulle prestazioni delle mie scelte durante la scrittura di nuovo codice. Faccio anche …
92 c++  memory  lambda  c++11 

21
Converti un vettore <int> in una stringa
Ho un vector&lt;int&gt;contenitore che ha numeri interi (ad esempio {1,2,3,4}) e vorrei convertirlo in una stringa del modulo "1,2,3,4" Qual è il modo più pulito per farlo in C ++? In Python è così che lo farei: &gt;&gt;&gt; array = [1,2,3,4] &gt;&gt;&gt; ",".join(map(str,array)) '1,2,3,4'
92 c++  vector  tostring 

2
come aggiungere un oggetto list <T> a un altro
in C ++, ho due list&lt;T&gt;oggetti Ae Bvoglio aggiungere tutti i membri di Balla fine di A. Ho cercato in diverse fonti e non ho trovato una soluzione semplice (ei A.append(B);) e questo mi sorprende un po '. Qual è il modo migliore per farlo? Come accade, non mi interessa …
92 c++  list  stl 



6
errore :: make_unique non è un membro di "std"
Sto cercando di compilare il seguente programma di pool di thread pubblicato sulla revisione del codice per testarlo. /codereview/55100/platform-independant-thread-pool-v4 Ma sto ottenendo gli errori threadpool.hpp: In member function ‘std::future&lt;decltype (task((forward&lt;Args&gt;)(args)...))&gt; threadpool::enqueue_task(Func&amp;&amp;, Args&amp;&amp; ...)’: threadpool.hpp:94:28: error: ‘make_unique’ was not declared in this scope auto package_ptr = make_unique&lt;task_package_impl&lt;R, decltype(bound_task)&gt;&gt; (std::move(bound_task), std::move(promise)); ^ …

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.