• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pomysł na bibliotekę. Czy coś takego się przyda? [ankieta]

42 Warsaw Coding Academy
0 głosów
379 wizyt
pytanie zadane 22 sierpnia 2015 w C i C++ przez Radfler VIP (101,030 p.)

Mam do użytkowników foum pewne pytanie. Dłuższy czas myślałem nad stworzeniem biblioteki do C++. Zawierałaby ona komponenty potrzebne do sprawdzania właściwości danego typu (coś jak <type_traits>). Sprawdzałaby ona czy typ spełnia daną koncepcję (Concepts: http://en.cppreference.com/w/cpp/concept). Co to jest koncept? Odsyłam do wikipedii: https://en.wikipedia.org/wiki/Concepts_%28C%2B%2B%29. Przykład kodu:

template<typename Container>
struct Stack {
    static_assert(rdf::is_container<Container>::value,
                  "Argument szablonu 'Container' musi spełniać wymagania kontenera");
    // ...
};

Stack<std::vector<int>> stos1; // Brak błędu, std::vector<> spełnia wymagania kontenera
Stack<int> stos2; // Błąd w czasie kompilacji

W tym przypadku szablon rdf::is_container<> sprawdza czy podany typ (jako argument szablonu), spełnia wymagania 'Container' (http://en.cppreference.com/w/cpp/concept/Container). Pełen zarys biblioteki można znaleźć TU. Moje pytanie brzmi: czy taka biblioteka się komukolwiek przyda?

Możliwe odpowiedzi:
Ciekawy pomysł, może się przydać (2 głosów, 18%)
Pomysł niezły, ale raczej nie skorzystam (5 głosów, 45%)
Słaby pomysł, po co mi taka biblioteka (4 głosów, 36%)
2/10 do widzenia (0 głosów)

2 odpowiedzi

+1 głos
odpowiedź 22 sierpnia 2015 przez 0xf Dyskutant (8,180 p.)
Spoko pomysl :)
+1 głos
odpowiedź 22 sierpnia 2015 przez adrian17 Mentor (353,220 p.)
W zasadzie biblioteka symulująca koncepty już istnieje, jako część Boosta: http://www.boost.org/doc/libs/1_59_0/libs/concept_check/reference.htm

No i jeśli chcesz się pobawić z prawdziwymi konceptami to obecny trunk GCC6 ma dla nich wsparcie od trochę ponad tygodnia.
komentarz 22 sierpnia 2015 przez Radfler VIP (101,030 p.)
O bibliotece Boosta słyszałem już wcześniej, jednak z tego co widzę nie wszystkie koncepty można sprawdzić z użyciem tej biblioteki. Będę musiał też ogarnąć te prawdziwe koncepty, bo z tego co póki co wiem to świetne narzędzie ;)
komentarz 22 sierpnia 2015 przez adrian17 Mentor (353,220 p.)
Jakby co, oficjalny dokument o konceptach (a więc i obecne wsparcie GCC6) ogranicza się do samej ich funkcjonalności - możesz więc je normalnie definiować i używać. Nie definiuje jednak żadnych faktcznych konceptów, więc w GCC trzeba je samemu zdefiniować (co sam robię w wolnym czasie). Pierwszy obecnie opracowywany dokument który między innymi wprowadza je do biblioteki standardowej to https://github.com/ericniebler/stl2/blob/master/DXXXX.pdf.

Podobne pytania

0 głosów
1 odpowiedź 963 wizyt
pytanie zadane 11 marca 2017 w C# przez marcin99b Szeryf (84,230 p.)
+1 głos
0 odpowiedzi 388 wizyt
pytanie zadane 26 grudnia 2022 w Python przez MichaelM Bywalec (2,960 p.)
–1 głos
1 odpowiedź 165 wizyt
pytanie zadane 24 września 2016 w C i C++ przez Kimi Bywalec (2,050 p.)

93,382 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,738 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...