2015-06-04 28 views

Odpowiedz

11

i variant otrzymały duże zainteresowanie, a rzeczy do wyszukiwania z Boost.Algorithm znajdują się w bibliotece Fundamentals TS.

Nikt nie zaproponował Signals2 lub Lockfree o ile wiem.

7

biblioteka sieciowa oparta w dużej mierze na boost.asio,
biblioteką plików na podstawie boost.filesystem

16

nie będę powtarzać tego, co już zostało zrobione w sprawie sieci, algorytmy, system plików, wariant i dowolny. Mogę jednak omówić twój punkt widzenia na temat sygnałów2 i trochę więcej.

Boost.Signals2

Boost.Signals2 został zaproponowany w przeszłości przez N2086 do włączenia do TR2. W rzeczywistości było to bardziej połączenie Boost.Signals2 i libsigC++. Z tego, co przeczytałem, ludzie byli raczej przychylni wprowadzeniu sygnałów do standardu, ale praca wymagała więcej pracy i ta praca nigdy nie została ukończona [potrzebne cytowanie].

Teraz jeszcze więcej pracy należy wykonać, aby dostosować papier tak, aby pasował do C++ 17, ale jeśli ktoś jest gotowy do tego zadania, sygnały prawdopodobnie nadal mogą być dobrym kandydatem do włączenia.

Boost.Container

Nie zrozumcie mnie źle, Boost.Container nie został zaproponowany do włączenia w C++ 17 jako całości. Jednak biblioteka ma ma pewien wpływ na niektóre propozycje. Oto dlaczego:

  • N4510 proponuje, że niektóre ze standardowych pojemników może zawierać niekompletne typów, dzięki czemu można mieć „cyklicznych” typy. Oto minimalne przykład prosto z papieru:

    struct Entry 
    { 
        std::list<Entry> messages; 
        // ... 
    }; 
    

    Papier tylko proponuje std::vector, std::list i std::forward_list mają te wymagania tak, że biblioteki GCC, dzyń i MSVC są w C++ 17-zgodny ze standardami out of the i zachęca je do wdrożenia innych standardowych pojemników, tak aby mogły one również pasować do idiomu. Ten rodzaj kontenerów rekurencyjnych jest w rzeczywistości jednym z pierwszych ulepszeń wprowadzonych przez Boost.Container w stosunku do standardowych kontenerów bibliotecznych.

  • N4526 omawia obawy przemysłu gier i branży wbudowanej o C++ i jego standardową bibliotekę. Między innymi zwraca uwagę, że wiele osób właśnie czeka na kogoś, aby napisać artykuł, aby zaproponować włączenie boost::flat_map i boost::flat_set z Boost.Container do standardowej biblioteki. Chociaż może nie być napisany w ogóle, lub przynajmniej nie na czas w C++ 17, dobrze napisany papier mógłby zostać zaakceptowany.Aktualizacja:P0038 faktycznie proponuje rozważenie włączenia płaskich pojemników do standardowej biblioteki.

Boost.Algorithm

Chociaż ta biblioteka jest dość nowy (2012, zwiększyć 1.50), że przyczyniły się do ukształtowania nowych algorytmów, które zostały zawarte w podstawach Biblioteka TS i/lub C++ w 17 :

  • N4536 i P0025 proponuje standaryzacji clamp funkcji zaciskania wartość pomiędzy parą wartości granicznych. Propozycje wspominają o funkcjiz algorytm Boost.Algorithm jako źródło inspiracji dla projektu.

  • N3905 i późniejsze prace mające na celu poprawienie literówki projektu proponują standaryzacji nowe algorytmy przeszukiwania, przede Boyer-Moore i Boyer-Moore-Horspool ciąg poszukiwania algorytmów, które mieszkały w Boost.Algorithm od jego powstania.

Różne rzeczy

Lista innych cech z Boost, które są omówione lub mają silnie wpłynęły jakieś wnioski:

  • To nie czynią go do C++ 14, ale std::optional, zainspirowany przez Boost.Optional, powinien bez problemu utworzyć go w C++ 17.

  • Urządzenie Special Math Functions zostało połączone w C++ 17. Funkcje te były częścią TR1 i Boost.Math zawiera je już od lat.

  • std::not_fn został scalony w C++ 17 i już żył w Boost od lat.

  • P0013 proponuje dodać metafunkcji and_, or_ i not_ do biblioteki standardowej i cytuje Boost.MPL jako jeden ze standardowych bibliotek, które wprowadziły takie funkcje przez długi czas. Aktualizacja:.

  • P0033 stwierdza, że ​​std::enable_shared_from_this jest słabo określone i zaleca standaryzację tego samego zachowania, co wersja narzędzia programu Boost. Proponuje także standaryzację boost::weak_from_this, aby uzupełnić rodzinę.

  • Wiele proponowanych funkcji współbieżności znajduje się już w trybie Zwiększ (std::barrier, std::latch ...). Należy jednak zauważyć, że zostały one wdrożone w Boost , ponieważ zostały zaproponowane do włączenia do standardowej biblioteki. Po pierwsze zadziałało to na odwrót. Dotyczy to również niektórych modyfikacji istniejących już klas.

1

ja nie wiem, czy wniosek jest \ zrobi to dla C++ 17, ale range-v3 (luźno oparty na zakresie Boost) proponuje się włączenie do standardu C++.

Powiązane problemy