Forum Informatyka UJ forum Strona Główna Informatyka UJ forum
Rocznik 2005 - czyli najlepsze forum w sieci
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

[C++] STL - nagłówki

 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Programowanie
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

PostWysł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 profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Stefan
pijak



Dołączył: 22 Lis 2005
Posty: 173
Przeczytał: 0 tematów


PostWysł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 profil autora
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

PostWysł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 profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Stefan
pijak



Dołączył: 22 Lis 2005
Posty: 173
Przeczytał: 0 tematów


PostWysł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
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Programowanie Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
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
Regulamin