Domande taggate «c++11»

Utilizzare questo tag per il codice che deve essere compilato come C ++ 11 (non utilizzando alcuna funzionalità introdotta in C ++ 14 o successive).

4
La spiegazione dell'ordinamento rilassato è errata in cppreference?
Nella documentazione di std::memory_ordersu cppreference.com c'è un esempio di ordinamento semplificato : Ordinazione rilassata Le operazioni atomiche contrassegnate memory_order_relaxednon sono operazioni di sincronizzazione; non impongono un ordine tra gli accessi simultanei alla memoria. Garantiscono solo atomicità e coerenza dell'ordine di modifica. Ad esempio, con xey inizialmente zero, // Thread 1: …

1
Possibile bug del compilatore in MSVC
Il codice seguente viene compilato con gcc e clang (e molti altri compilatori C ++ 11) #include <stdint.h> typedef int datatype; template <typename T> struct to_datatype {}; template <> struct to_datatype<int16_t> { static constexpr datatype value = 1; }; template <typename T> class data { public: data(datatype dt = to_datatype<T>::value) …
13 c++  c++11  visual-c++ 


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 …


3
Come scoprire quali funzioni ha generato il compilatore?
Conosco le funzioni generate dal compilatore, la regola di tre e la regola di cinque. In scenari del mondo reale, potrebbe non essere banale capire esattamente quale delle funzioni generate dal compilatore (costruttori, operatori di assegnazione, distruttore) siano state effettivamente create dal compilatore. Esiste un modo per elencare le funzioni …
11 c++  c++11 

5
C ++ assegnazione ternaria di lambda
Qualche idea sul perché il seguente frammento non venga compilato? Si lamenta di un errore "errore: operandi a?: Tipi diversi" auto lambda1 = [&](T& arg) { ... }; auto lambda2 = [&](T& arg) { ... }; auto lambda = condition ? lambda1 : lambda2;



2
Deduzione dei tipi di argomenti del modello di modello C ++
Ho un codice che trova e stampa le corrispondenze di uno schema mentre passa sopra il contenitore di stringhe. La stampa viene eseguita nella funzione foo che è modellata Il codice #include <iostream> #include <algorithm> #include <iterator> #include <vector> #include <string> #include <tuple> #include <utility> template<typename Iterator, template<typename> class Container> …

3
Nullptr può essere convertito in uintptr_t? Diversi compilatori non sono d'accordo
Considera questo programma: #include <cstdint> using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } Impossibile compilare con msvc v19.24: <source>(5): error C2440: '<function-style-cast>': cannot convert from 'nullptr' to 'my_time_t' <source>(5): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral …
10 c++  c++11  gcc  visual-c++  clang 

3
Perché non è necessario utilizzare typename per tipi dipendenti nel seguente caso?
Ho letto sulla rimozione del riferimento di un tipo, qui . Dà il seguente esempio: #include <iostream> // std::cout #include <type_traits> // std::is_same template<class T1, class T2> void print_is_same() { std::cout << std::is_same<T1, T2>() << '\n'; } int main() { std::cout << std::boolalpha; print_is_same<int, int>(); print_is_same<int, int &>(); print_is_same<int, int …



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.