Pytania otagowane jako c++11

Użyj tego znacznika do kodu, który musi zostać skompilowany jako C ++ 11 (nie używając żadnych funkcji wprowadzonych w C ++ 14 lub nowszej).


5
Jak dobrze Unicode jest obsługiwany w C ++ 11?
Przeczytałem i słyszałem, że C ++ 11 obsługuje Unicode. Kilka pytań na ten temat: Jak dobrze standardowa biblioteka C ++ obsługuje Unicode? Robi std::string robi to, co powinien? Jak z tego korzystać? Gdzie są potencjalne problemy?
183 c++  unicode  c++11 

2
Czy idiom Safe-Bool jest przestarzały w C ++ 11?
Ta odpowiedź @R. Martinho Fernandes pokazuje, że idiom bezpieczny jest przestarzały w C ++ 11, ponieważ można go zastąpić prostym explicit operator bool() const; zgodnie ze standardowym cytatem w odpowiedzi §4 [conv] p3: Wyrażenie e można domyślnie przekonwertować na typ Twtedy i tylko wtedy, gdy deklaracja T t=e;jest poprawnie sformułowana, …

6
Jak usunąć z mapy podczas iteracji?
Jak usunąć z mapy podczas iteracji? lubić: std::map<K, V> map; for(auto i : map) if(needs_removing(i)) // remove it from the map Jeśli map.erasego użyję, unieważni iteratory
177 c++  map  c++11 

4
Czy można użyć std :: string w constexpr?
Używając C ++ 11, Ubuntu 14.04, domyślnego łańcucha narzędzi GCC . Ten kod nie działa: constexpr std::string constString = "constString"; błąd: typ 'const string {aka const std :: basic_string}' zmiennej constexpr 'constString' nie jest dosłowny ... ponieważ ... 'std :: basic_string' ma nietrywialny destruktor Czy można użyć std::stringw constexpr? (najwyraźniej …

3
Czym dokładnie jest std :: atomic?
Rozumiem, że std::atomic<>jest to obiekt atomowy. Ale do jakiego stopnia atomowa? W moim rozumieniu operacja może być atomowa. Co dokładnie oznacza uczynienie obiektu atomowym? Na przykład, jeśli istnieją dwa wątki współbieżnie wykonujące następujący kod: a = a + 12; Czy zatem cała operacja (powiedzmy add_twelve_to(int)) jest atomowa? Czy też są …

2
shared_ptr do tablicy: czy należy go używać?
Tylko małe zapytanie dotyczące shared_ptr. Czy warto shared_ptrwskazać tablicę? Na przykład, shared_ptr<int> sp(new int[10]); Jeśli nie, to dlaczego nie? Jednym z powodów, o których już wiem, jest to, że nie można zwiększać / zmniejszać wartości shared_ptr. Dlatego nie może być używany jako normalny wskaźnik do tablicy.
172 c++  c++11  shared-ptr 

2
Dlaczego lambdy mogą być lepiej zoptymalizowane przez kompilator niż zwykłe funkcje?
W swojej książce The C++ Standard Library (Second Edition)Nicolai Josuttis stwierdza, że ​​kompilator może lepiej zoptymalizować lambdy niż zwykłe funkcje. Ponadto kompilatory C ++ optymalizują lambdy lepiej niż zwykłe funkcje. (Strona 213) Dlaczego? Pomyślałem, że jeśli chodzi o inlining, nie powinno już być żadnej różnicy. Jedynym powodem, dla którego mogłem …




2
publiczny element członkowski wymiany znajomych
W pięknej odpowiedzi na idiom `` kopiuj i zamień '' jest fragment kodu, potrzebuję trochę pomocy: class dumb_array { public: // ... friend void swap(dumb_array& first, dumb_array& second) // nothrow { using std::swap; swap(first.mSize, second.mSize); swap(first.mArray, second.mArray); } // ... }; i dodaje notatkę Istnieją inne twierdzenia, że ​​powinniśmy specjalizować …

6
Używanie ogólnych obiektów std :: function z funkcjami składowymi w jednej klasie
Dla jednej klasy chcę przechowywać niektóre wskaźniki funkcji do funkcji składowych tej samej klasy w jednej mapprzechowującej std::functionobiekty. Ale zawodzę na samym początku z tym kodem: class Foo { public: void doSomething() {} void bindFunction() { // ERROR std::function<void(void)> f = &Foo::doSomething; } }; Otrzymuję error C2064: term does not …

3
Czym różni się „= default” od „{}” dla domyślnego konstruktora i destruktora?
Pierwotnie opublikowałem to jako pytanie tylko o destruktory, ale teraz dodaję do rozważenia domyślnego konstruktora. Oto oryginalne pytanie: Jeśli chcę dać mojej klasie destruktor, który jest wirtualny, ale poza tym jest taki sam, jak wygenerowałby kompilator, mogę użyć =default: class Widget { public: virtual ~Widget() = default; }; Wygląda jednak …


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.