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
Definizione fuori classe C ++ 20 in una classe modello
Fino allo standard C ++ 20 di C ++, quando volevamo definire un operatore fuori classe che utilizza alcuni membri privati ​​di una classe template, useremmo un costrutto simile a questo: template <typename T> class Foo; template <typename T> constexpr bool operator==(T lhs, const Foo<T>& rhs); template <typename T> class …
12 c++  templates  c++20 



2
Perché una variabile enum è un valore qui?
Esempio: typedef enum Color { RED, GREEN, BLUE } Color; void func(unsigned int& num) { num++; } int main() { Color clr = RED; func(clr); return 0; } Ottengo il seguente errore quando compilo questo: <source>: In function 'int main()': <source>:16:9: error: cannot bind non-const lvalue reference of type 'unsigned …


1
Alias ​​pubblico per tipo non pubblico
Mi chiedo se sia valido C ++: class Test { struct PrivateInner { PrivateInner(std::string const &str) { std::cout << str << "\n"; } }; public: using PublicInner = PrivateInner; }; //Test::PrivateInner priv("Hello world"); // Ok, private so we can't use that Test::PublicInner publ("Hello World"); // ?, by using public alias …


2
Passare un concetto a una funzione
Poiché i concetti sono definiti come predicati in fase di compilazione, è anche possibile riutilizzare effettivamente questi predicati per algoritmi in fase di compilazione? Ad esempio, sarebbe possibile verificare se tutti i tipi in una tupla sono conformi a un concetto? Per quanto ho visto, non è possibile in alcun …

5
Somma efficiente e stabile dei numeri ordinati
Ho un elenco abbastanza lungo di numeri positivi in ​​virgola mobile ( std::vector<float>, dimensione ~ 1000). I numeri sono ordinati in ordine decrescente. Se li riassumo seguendo l'ordine: for (auto v : vec) { sum += v; } Immagino di poter avere qualche problema di stabilità numerica, poiché vicino alla …

2
Inizializzazione del vettore di atomica
Prendere in considerazione: void foo() { std::vector<std::atomic<int>> foo(10); ... } I contenuti di foo sono ora validi? O devo ripetere esplicitamente e inizializzarli? Ho controllato Godbolt e sembra che vada bene, tuttavia lo standard sembra essere molto confuso su questo punto. Il costruttore std :: vector afferma di inserire istanze …
12 c++  vector  atomic 




4
Rottura del cambiamento in C ++ 20 o regressione in clang-trunk / gcc-trunk quando si sovraccarica il confronto di uguaglianza con un valore di ritorno non booleano?
Il codice seguente viene compilato correttamente con clang-trunk in modalità c ++ 17 ma si interrompe in modalità c ++ 2a (imminente c ++ 20): // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const Foo&) {return Meta{};} …

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.