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.

2
Std :: chrono :: years storage è davvero almeno 17 bit?
Da cppreference std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> Usando libc++, sembra che la memoria di sottolineatura di std::chrono::yearsis shortsia firmata a 16 bit . std::chrono::years( 30797 ) // yields 32767/01/01 std::chrono::years( 30797 ) + 365d // yields -32768/01/01 apparently UB C'è un refuso su …
14 c++  chrono  c++20  libc++ 

3
Ordinamento di un vettore in ordine decrescente in due intervalli
Di 'che ho un vettore di numeri interi: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); Quindi lo ordino in ordine decrescente: sort(indices.begin(), indices.end(), [](int first, int second) -> bool{return indices[first] > indices[second];}) for (int i=0; i<15; i++) printf("%i\n", indices[i]); Questo produce quanto segue: 14 13 12 11 10 9 …

1
Clang non compila il codice ma gcc e msvc lo hanno compilato
Non capisco qual è il problema: né nel mio codice né nel compilatore (meno possibile). C'è un pezzo di codice come questo: #include <iostream> #include <type_traits> #include <set> template<typename T, typename = void> struct TestA: std::false_type {}; template<typename T> struct TestA<T, std::void_t<typename T::reverse_iterator>> : std::true_type {}; template<typename T> struct TestA<T, …



1
Posso inizializzare la lista std :: vector con un perfetto inoltro degli elementi?
Ho notato che l' inizializzazione dell'elenco aggregato di std :: vector esegue l' inizializzazione della copia quando lo spostamento è più applicabile. Allo stesso tempo, più emplace_backs fanno quello che voglio. Potrei solo trovare questa soluzione imperfetta di scrivere una funzione modello init_emplace_vector. Tuttavia, è ottimale solo per costruttori non …




2
Come funzionano i tiri e le prese?
Con questo codice: int main() { try { throw -1; } catch (int& x) { std::cerr << "We caught an int exception with value: " << x << std::endl; } std::cout << "Continuing on our merry way." << std::endl; return 0; } Abbiamo: /tmp$ ./prorgam.out Continuing on our merry way …

1
se constexpr - perché l'istruzione scartata è completamente controllata?
Stavo scherzando con cteptte 20 ++ in GCC 10 e ho scritto questo codice #include <optional> #include <tuple> #include <iostream> template <std::size_t N, typename Predicate, typename Tuple> consteval std::optional<std::size_t> find_if_impl(Predicate&& pred, Tuple&& t) noexcept { constexpr std::size_t I = std::tuple_size_v<std::decay_t<decltype(t)>> - N; if constexpr (N == 0u) { return std::nullopt; …

1
È un bug in std :: gcd?
Mi sono imbattuto in questo comportamento std::gcdche ho trovato inaspettato: #include <iostream> #include <numeric> int main() { int a = -120; unsigned b = 10; //both a and b are representable in type C using C = std::common_type<decltype(a), decltype(b)>::type; C ca = std::abs(a); C cb = b; std::cout << a …

2
Perché non possiamo creare oggetti banalmente costruibili usando malloc se il banale costruttore predefinito non esegue alcuna azione?
Ho difficoltà a comprendere il seguente paragrafo citato da cppreference su un banale costruttore predefinito. Ho cercato StackOverflow ma non ho ancora ricevuto una risposta chiara. Quindi per favore aiutatemi. Un banale costruttore predefinito è un costruttore che non esegue alcuna azione. Tutti i tipi di dati compatibili con il …


2
i costruttori di copia e spostamento sono amici automatici?
Possiamo accedere alle variabili private di un'altra classe quando definiamo i costruttori di copia o spostamento. Il C ++ li rende gli uni friendagli altri automaticamente? Per esempio: my_str::my_str(my_str&& m) { size_ = m.size_; //accessing private variable another my_str class buff_ = m.buff_; //accessing private variable another my_str class m.buff_ …
14 c++  friend-class 

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.