C ++ 14 to nazwa standardu C ++, zatwierdzonego w 2014 roku. Opiera się on na poprzednim standardzie C ++ 11, ulepszając język podstawowy i bibliotekę standardową oraz dodając kilka funkcji.
std::sortAlgorytm (i jego kuzyni std::partial_sorti std::nth_element) z C ++ Standard Library w większości implementacji skomplikowanej i hybrydowe połączenie więcej podstawowych algorytmów sortowania , takich jak wybór rodzaju, insercji sortowania szybkiego sortowania, łączenia sortowania lub sortowania sterty. Tutaj i na siostrzanych stronach, takich jak https://codereview.stackexchange.com/, jest wiele pytań związanych z błędami, …
Czasami twierdzi się, że C ++ 11/14 może zwiększyć wydajność, nawet po prostu kompilując kod C ++ 98. Uzasadnienie jest zwykle zgodne z semantyką ruchu, ponieważ w niektórych przypadkach konstruktory wartości są generowane automatycznie lub są teraz częścią STL. Teraz zastanawiam się, czy te przypadki były wcześniej obsługiwane przez RVO …
Jest dość głupi problem z liczbą pi w C i C ++. O ile wiem, M_PIdefinicja w math.hnie jest wymagana przez żaden standard. Nowe normy C ++ wprowadzono wiele skomplikowanych matematycznych w bibliotece standardowej - funkcje hiperboliczne, std::hermitei std::cyl_bessel_i, różnych generatorów liczb losowych i tak dalej i tak dalej. Czy …
Czy możliwe jest przechwycenie przez odwołanie do stałej w wyrażeniu lambda? Chcę, aby zadanie zaznaczone poniżej zakończyło się niepowodzeniem, na przykład: #include <cstdlib> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { string strings[] = { "hello", "world" }; static const size_t num_strings = sizeof(strings)/sizeof(strings[0]); string best_string …
На этот вопрос есть ответы на Stack Overflow на русском : Конструкция decltype (auto) W języku c ++ 14 wprowadzono decltype(auto)idiom. Zwykle służy do zezwalania autodeklaracjom na używanie decltypereguł dla danego wyrażenia . Szukając przykładów „dobrego” użycia idiomu, przychodzą mi do głowy tylko następujące rzeczy (autorstwa Scotta Meyersa ), a …
Oglądałem wykład Waltera Browna na Cppcon14 o nowoczesnym programowaniu szablonów ( część I , część II ), gdzie przedstawił swoją void_ttechnikę SFINAE. Przykład: biorąc pod uwagę prosty szablon zmiennej, który ocenia, voidczy wszystkie argumenty szablonu są poprawnie sformułowane: template< class ... > using void_t = void; oraz następującą cechę, która …
Wraz z wydaniem GCC 4.8.0 mamy kompilator obsługujący automatyczne odejmowanie zwracanych typów, część C ++ 14. Dzięki -std=c++1y, mogę to zrobić: auto foo() { //deduced to be int return 5; } Moje pytanie brzmi: kiedy powinienem używać tej funkcji? Kiedy jest to konieczne i kiedy powoduje, że kod staje się …
Tradycyjnie, standardowym i przenośnym sposobem uniknięcia wielu włączeń nagłówków w C ++ było / jest użycie #ifndef - #define - #endifschematu dyrektyw prekompilatora, zwanego również schematem ochrony makr (zobacz fragment kodu poniżej). #ifndef MY_HEADER_HPP #define MY_HEADER_HPP ... #endif Jednak w większości implementacji / kompilatorów (patrz rysunek poniżej) istnieje bardziej „elegancka” …
Odpowiadając na inne pytanie, natknąłem się na nieco inne sformułowania dla std::vector::erase()i std::deque::erase(). Oto, o czym mówi C ++ 14 std::deque::erase( [deque.modifiers]/4-6wyróżnienie moje): Efekty: ... Złożoność: liczba wywołań do destruktora jest taka sama, jak liczba usuniętych elementów, ale liczba wywołań operatora przypisania jest nie większa niż mniejsza z liczby elementów …
Czy std::make_uniquema jakieś korzyści związane z wydajnością std::make_shared? W porównaniu z tworzeniem ręcznym std::unique_ptr: std::make_unique<int>(1); // vs std::unique_ptr<int>(new int(1));
Jak działa generyczna lambda ( autosłowo kluczowe jako typ argumentu) w standardzie C ++ 14? Czy jest oparty na szablonach C ++, w których dla każdego innego typu argumentu kompilator generuje nową funkcję o tej samej treści, ale zastępowanych typach (polimorfizm w czasie kompilacji), czy jest bardziej podobny do generycznych …
W przypadku prawie całego kodu, który piszę, często mam do czynienia z problemami z redukcją zestawów na kolekcjach, które ostatecznie kończą się naiwnymi warunkami „jeśli” w nich. Oto prosty przykład: for(int i=0; i<myCollection.size(); i++) { if (myCollection[i] == SOMETHING) { DoStuff(); } } Dzięki językom funkcjonalnym mogę rozwiązać problem, redukując …
W C ++ 14 wydaje się, że kontenery asocjacyjne zmieniły się z C ++ 11 - [Associative.reqmts] / 13 mówi: Szablony funkcji składowej find, count, lower_bound, upper_bound, i equal_rangenie powinien uczestniczyć w rozdzielczości przeciążenia chyba typ Compare::is_transparentistnieje. Jaki jest cel uczynienia komparatora „przejrzystym”? C ++ 14 udostępnia również szablony bibliotek, …
Komitet Standardów C ++ ma tendencję do unikania dodawania nowych słów kluczowych do języka, jednak w przypadku C ++ 11 tak nie było. Kilka przykładów: constexpr decltype thread_local auto // New usage noexcept nullptr static_assert alignof alignas Czy w C ++ 14 wprowadzono jakieś nowe słowa kluczowe?
Załóżmy, że mam trzy skompilowane obiekty, wszystkie wyprodukowane przez ten sam kompilator / wersję : A został skompilowany w standardzie C ++ 11 B został skompilowany w standardzie C ++ 14 C został skompilowany w standardzie C ++ 17 Dla uproszczenia załóżmy, że wszystkie nagłówki zostały napisane w C ++ …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.