![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Z potrzeby chwili napisałem prosty szablon funkcji, którego zadaniem jest zwracanie ilości elementów tablicy o dowolnym typie elementów (czyli klasyczne sizeof(tablica)/sizeof(typ_elementu)).
Jednakże pojawił się mały problem: Cytat //f-cja zwracajaca ilosc elementow tablicy template <class T> T array_sizeof(const T * array) { return sizeof(array)/sizeof(T); }//array_sizeof Czy jest możliwe takie użycie parametru T w szablonie funkcji, tzn., jako argumentu dla sizeof() ? Bo niestety nie działa to w ten sposób. Ten post edytował blooregard 27.11.2009, 00:36:41 -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A to nie lepiej użyć STL i funkcji size() na predefiniowanych vector czy list? Po co wymyślać koło na nowo
![]() ![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#3
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
@thek, z pewnością masz rację, ale w tej chwili nie chodzi o zastosowanie STL, tylko o sam fakt - czy mozna użyć T jako argumentu dla sizeof() ?
-------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 77 Pomógł: 27 Dołączył: 24.03.2002 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
A może coś w ten deseń:
-------------------- Zbyszek 'antyqjon' Siciarz
siciarz.net | Aquila DSP C++ |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 28 Dołączył: 4.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
W C++ i tak musisz podać rozmiar tablicy podczas jej tworzenia, żeby zarezerwować odpowiedni rozmiar pamięci, więc tworzenie takiej funkcji jest bez sensu. Zresztą widać to w przykładzie mojego przedmówcy. Chyba, że mylisz pojęcia i piszesz np. o liście dynamicznej lub czymś w tym stylu.
-------------------- Sygnatura niezgodna z regulaminem.
|
|
|
![]()
Post
#6
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Dzięki, @antyqjon.
W tym momencie zadziałała również moja wersja (z sizeof(typ)), z tym, że w teraz traci sens zastosowanie takiej konstrukcji:
wyjście: Cytat 5555 2345 Cytat W C++ i tak musisz podać rozmiar tablicy podczas jej tworzenia, żeby zarezerwować odpowiedni rozmiar pamięci, więc tworzenie takiej funkcji jest bez sensu. Zresztą widać to w przykładzie mojego przedmówcy. Chyba, że mylisz pojęcia i piszesz np. o liście dynamicznej lub czymś w tym stylu. Nie chodzi mi w tym momencie o sam problem sprawdzenia rozmiaru takiej tablicy, bo to można rozwiązać na milion sposobów, lecz zastosowania parametru szablonu jako argumentu dla sizeof(). -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 10.05.2025 - 06:06 |