|
Informatyka UJ forum Rocznik 2005 - czyli najlepsze forum w sieci
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Spectro
Mistrz grilla
Dołączył: 09 Mar 2006
Posty: 2306
Przeczytał: 0 tematów
Skąd: Kurdwanów
|
Wysłany: Wto 21:56, 07 Lis 2006 Temat postu: [C++] STL - nagłówki |
|
|
Jeżeli ktoś pisze na virgo, to niech uważa na funkcje teoretycznie dołączane wraz z nagłówkiem numeric - wyskakuje błąd kompilacji. Trzeba więc używać nagłówka algo.h. Czy ktoś wie dlaczego tak się dzieje? Mój "domowy" GCC 3.4.4 wszystko kompiluje dobrze.
|
|
Powrót do góry |
|
|
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Stefan
pijak
Dołączył: 22 Lis 2005
Posty: 173
Przeczytał: 0 tematów
|
Wysłany: Śro 23:03, 08 Lis 2006 Temat postu: |
|
|
Co np rozumiesz przez funkcje "teoretycznie dołączane wraz z nagłówkiem numeric"? Może część rzeczy, których potrzebujesz, znajduje się po prostu w <algorithm>? Dana implementacja ma prawo włączać dowolne inne nagłówki biblioteki standardowej, zatem u Ciebie <numeric> może włączać <algorithm>. Tak jest z szablonami funkcji min i max, które pomimo tego, że nie zostały włączone jawnie przez #include <algorithm> (a tam powinny się znajdować według Standardu), w niektórych implementacjach są widoczne po włączeniu np <vector> lub innych.
Dokumentacja implementacji biblioteki standardowej C++ (która ma też implementację paru innych rzeczy, np TR1) firmy Dinkumware jest AFAIK zgodna ze Standardem, zatem może być źródłem wiedzy o tym, co w jakich nagłówkach siedzi.
[link widoczny dla zalogowanych]
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Spectro
Mistrz grilla
Dołączył: 09 Mar 2006
Posty: 2306
Przeczytał: 0 tematów
Skąd: Kurdwanów
|
Wysłany: Śro 23:33, 08 Lis 2006 Temat postu: |
|
|
Stefan napisał: | Co np rozumiesz przez funkcje "teoretycznie dołączane wraz z nagłówkiem numeric"? |
Bo praktycznie może być z tym różnie ;] . Bazuję na informacjach z [link widoczny dla zalogowanych] , chodzi o funkcje [link widoczny dla zalogowanych] i [link widoczny dla zalogowanych].
Stefan napisał: | Może część rzeczy, których potrzebujesz, znajduje się po prostu w <algorithm>? |
Dołączenie algorithm nie pomogło. Dołączenie algo.h - tak.
Stefan napisał: | Tak jest z szablonami funkcji min i max, które pomimo tego, że nie zostały włączone jawnie przez #include <algorithm> (a tam powinny się znajdować według Standardu), w niektórych implementacjach są widoczne po włączeniu np <vector> lub innych. |
A tak, to akurat zauważyłem - właściwie niemal czegokolwiek bym z stla nie włączył, to te wymienione przez Ciebie funkcje są.
Czyli wygląda na to, że kompilatory nie muszą trzymać się standardu ;] . Rzeczywiście, z informacji znajdujących się w Twoim linku wynika, że w numericu wcale nie muszą występować akurat te dwie funkcje, które podałem w przykładzie.
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Stefan
pijak
Dołączył: 22 Lis 2005
Posty: 173
Przeczytał: 0 tematów
|
Wysłany: Czw 11:38, 09 Lis 2006 Temat postu: |
|
|
Spectro napisał: | Stefan napisał: | Co np rozumiesz przez funkcje "teoretycznie dołączane wraz z nagłówkiem numeric"? |
Bo praktycznie może być z tym różnie ;] . Bazuję na informacjach z [link widoczny dla zalogowanych] , chodzi o funkcje [link widoczny dla zalogowanych] i [link widoczny dla zalogowanych]. |
A widzisz. AFAIK te funkcje nie są w Standardzie C++. Zresztą szybkie spojrzenie do nagłówków GCC: algo.h włącza ext/numeric i czyni nazwy iota i power globalnymi. Spojrzenie do ext/numeric:
Kod: | /** @file ext/numeric
* This file is a GNU extension to the Standard C++ Library (possibly
* containing extensions from the HP/SGI STL subset). You should only
* include this header if you are using GCC 3 or later.
*/ |
Spectro napisał: | Czyli wygląda na to, że kompilatory nie muszą trzymać się standardu ;] |
Oczywiście, że nie muszą ;P Wyżej nie wyraziłem się wystarczająco precyzyjnie: Standard pozwala danej implementacji na takie zachowanie (tzn włączanie innych nagłówków biblioteki standardowej). Więc i tym razem GCC jest zgodne z ANSI/ISO C++ :)
BTW: http://youtube.com/watch?v=tE2nMlEaMCE LOL
|
|
Powrót do góry |
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|