c++11

Jak to jest " Int main(){(([](){})());}" poprawne C++?

Ostatnio natknąłem się na następujący ezoteryczny fragment kodu. int main(){(([](){})());} Sformatuj go w następujący spos ... prawnego kodu, który byłby tak dziwaczny poza Javascript i Wskaźnik funkcji C. Może ktoś wyjaśnić jak to jest poprawne C++?

Kiedy używać argumentów std:: forward do forward?

C++0x pokazuje przykład użycia std::forward: template<class T> void foo(T&& arg) { bar(std::forward<T&g ... :forward<Params>(args)...); } Jestem trochę zdezorientowany std::forward, i chętnie skorzystam z jakiegoś sprzątania.

Dlaczego makra preprocesora są złe i jakie są alternatywy?

Zawsze o to pytałem, ale nigdy nie otrzymałem naprawdę dobrej odpowiedzi; myślę, że prawie każdy programista przed napisaniem ... żkach i z niektórymi konfiguracjami sieciowymi i systemami plików. Ale ogólnie, co z makrami i alternatywami dla ich użycia?

Dlaczego nie mogę odepchnąć unikalnego PST do wektora?

Co jest nie tak z tym programem? #include <memory> #include <vector> int main() { std::vector<std::uniqu ... gt; = std::unique_ptr<int>]' c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/vector.tcc:314:4: error: used here

Używanie generycznych obiektów STD::function z funkcjami składowymi w jednej klasie

Dla jednej klasy chcę przechowywać niektóre wskaźniki funkcji do funkcji Członkowskich tej samej klasy w jednym map przechowu ... hś dziwnych regułach C++, których nie przestrzegam. EDIT: I do NOT use boost. Jest to C++11 zintegrowany z kompilatorem MS.

Czy jest jakiś użytek z unikalnego PST z tablicą?

std::unique_ptr posiada wsparcie dla tablic, na przykład: std::unique_ptr<int[]> p(new int[10]); Ale czy jest to potrzebne? prawdopodobnie wygodniej jest używać std::vector lub std::array. Czy znalazłeś jakiś pożytek dla tego konstruktu?

Compile time string hashing

Czytałem w kilku różnych miejscach, że używając nowych liter ciągów w C++11, możliwe jest obliczenie hasha ciągu w czasie kom ... m się odgadnąć, jak wyglądałoby ostateczne rozwiązanie, ale meta_hash<"string"_meta>::value również mogłoby być realne.

Co dzieje się z odłączonym wątkiem, gdy main() wychodzi?

Załóżmy, że rozpoczynam std::thread, a następnie detach(), więc wątek kontynuuje wykonywanie, mimo że std::thread, który kied ... cyjny planuje główny wątek, aby zużyć wynik i zakończyć zanim odłączony wątek zakończy działanie destruktorów, co się stanie?

Kiedy zrobić Typ nie-ruchomy w C++11?

Byłem zaskoczony, że to nie pojawia się w moich wynikach wyszukiwania, myślałem, że ktoś już o to pytał, biorąc pod uwagę prz ... dobry pomysł) zrobić klasę nie-ruchomą w C++11? (powody Inne niż problemy z kompatybilnością z istniejącym kodem, czyli.)

Kiedy korzystać z załączonego klamry inicjalizatora?

W C++11 mamy nową składnię do inicjalizacji klas, która daje nam wiele możliwości inicjalizacji zmiennych. { // Example 1 ... odążanie właściwą drogą jest niezbędne. I zastanawiam się, czy istnieje uniwersalna wskazówka, którą składnię należy wybrać.

Jaka jest zaleta stosowania odwołań uniwersalnych w pętlach opartych na zakresach?

const auto& wystarczy, jeśli chcę wykonywać operacje tylko do odczytu. Jednak wpadłem na for (auto&& e : v) // ... tej na zakresie? Proszę skoncentrować się na pytaniu: dlaczego miałbym używać auto & & w oparciu o zakres dla pętli?

Jak wykryć obsługę kompilatora C++11 za pomocą CMake

Czy istnieje sposób, aby CMake automatycznie wykrył, czy kompilator obsługuje C++11, czy nie? Byłoby miło poinformować użytk ... is needed.") endif() else(CMAKE_COMPILER_IS_GNUCXX) add_definitions("-std=c++0x") endif(CMAKE_COMPILER_IS_GNUCXX)

wspólne PST i słabe różnice w PST

Czytam książkę Scotta Meyersa " efektywne C++". Wspomniano, że istnieją tr1::shared_ptr i tr1::weak_ptr działają jak wbudowan ... sza niż zero. Uprzejmie proszę o przykładowy program C++. Jak rozwiązuje problem weak_ptrs? (jeszcze raz, proszę o przykład).

Konwertuj między string, u16string & u32string

Szukałem sposobu na konwersję między typami znaków Unicode i natknąłem się na tę metodę. Nie tylko nie do końca rozumiem met ... lepsza metoda, Czy mógłbyś wskazać, co sprawia, że działa, a jeśli nie, chciałbym usłyszeć sugestie dotyczące lepszych metod.

Dlaczego mogę używać auto na typie prywatnym?

Byłem jakoś zaskoczony, że poniższy kod kompiluje i działa (vc2012 & gcc4.7.2) class Foo { struct Bar { int i; }; p ... jest to poprawne? Dlaczego mogę użyć auto na typie prywatnym, podczas gdy nie mogę użyć jego nazwy (zgodnie z oczekiwaniami)?

Czy w C++ nadal jest złą praktyką zwracanie wektora z funkcji?

Skrócona wersja: w wielu językach programowania często zwraca się duże obiekty-takie jak wektory/tablice. Czy ten styl jest ... niki. W rezultacie pierwsza forma była przez długi czas głównym zapachem kodu w programowaniu C++. Mam nadzieję, że już nie?

void t "czy można wdrażać koncepcje"?

Oglądałem drugą częśćrozmowy Waltera Browna CppCon2014 na temat metaprogramowania szablonów , podczas której omawiał zastosow ... du rozmowy, rozumiem, jak ten przykład działa, ale nie widzę, jak możemy dostać się stąd do czegoś takiego jak Concepts Lite.

Dlaczego konwersja ze stałej łańcuchowej na 'char*' jest prawidłowa w C, ale nieprawidłowa w C++

Standard C++11 (ISO/IEC 14882:2011) mówi w § C.1.1: char* p = "abc"; // valid in C, invalid in C++ Dla C++ jest to OK, po ... w C++ i czym różni się od pierwszej? Czy to nie jest wciąż szkodliwe? Jeśli tak, to dlaczego standard powiedział, że jest OK?

Legalność COW std:: implementacja string w C++11

Zdawałem sobie sprawę, że copy-on-write nie jest realnym sposobem implementacji zgodnego std::string W C++11, ale kiedy ostat ... esuje mnie wyprowadzenie stylu rozdziału i wersu z "C++11 skutecznie zakazuje implementacji std::string opartych na krowach".

Jak przechowywać zmienne argumenty szablonu?

Czy możliwe jest przechowywanie parametru pack w jakiś sposób do późniejszego wykorzystania? template <typename... T> ... void main(){ Action<int,int> add([](int x, int y){std::cout << (x+y);}, 3, 4); //... add.act(); }