• 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]

0 głosów
448 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 (354,880 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 (354,880 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ź 1,000 wizyt
pytanie zadane 11 marca 2017 w C# przez marcin99b Szeryf (85,790 p.)
+1 głos
0 odpowiedzi 451 wizyt
pytanie zadane 26 grudnia 2022 w Python przez MichaelM Gaduła (3,000 p.)
–1 głos
1 odpowiedź 195 wizyt
pytanie zadane 24 września 2016 w C i C++ przez Kimi Bywalec (2,050 p.)

93,630 zapytań

142,554 odpowiedzi

323,055 komentarzy

63,136 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2174p. - dia-Chann
  2. 2153p. - DziarnowskiJ
  3. 2123p. - Łukasz Piwowar
  4. 2105p. - CC PL
  5. 2077p. - raydeal
  6. 1957p. - Maurycy W
  7. 1954p. - Adrian Wieprzkowicz
  8. 1895p. - rucin93
  9. 1887p. - Łukasz Eckert
  10. 1855p. - Michal Drewniak
  11. 1811p. - rafalszastok
  12. 1777p. - robwarsz
  13. 1588p. - Tomasz Bielak
  14. 1491p. - Rafał Trójniak
  15. 1377p. - ssynowiec
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...