-
Data: 2009-08-27 13:01:03
Temat: Re: szablony metod - deklaracja i definicja
Od: Tomasz Bywalec <t...@p...dont.spam.me.o2.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Megas pisze:
[...]
>
> template void foo<int>();
>
> Jaki jest cel ostatniej lini 'template void foo<int>(); ?? i czy mozna to
> samo zrobic w przypadku funkcji skladowej klasy??
>
Ta linijka powoduje że w tym miejscu szablon funkcji foo zostaje
rozwinięty (skonretyzowany) z parametrem <int> - to znaczy,
zostanie utworzona "konkretna" wersja funkcji, na podstawie
szablonu.
Zrobiłem u siebie mały test - poniższy przykład rozbity jest na 3 pliki,
u mnie działa, spróbuj może zaadaptować to na potrzeby swojego programu:
(całość działa u mnie, tyle że na VC++ 2008 EE).
==================
Plik tmp2.hpp
==================
#include <string>
namespace tmp {
// Zwyczajna klasa, z jednym szablonem metody.
class Printer {
public:
Printer( const std::string& prefix ) : prefix_( prefix ) {}
// Deklaracja szablonu metody (bez definicji).
template <class T> void print_type();
private:
std::string prefix_;
};
}
===================
Plik tmp2.cpp
===================
#include "tmp2.hpp"
#include <iostream>
namespace tmp {
// Definicja szablonu metody.
template <class T>
void Printer::print_type()
{
std::cout << prefix_ << ": " << typeid(T).name() << std::endl;
}
// Konkretyzacje szablonu dla trzech typow.
template void Printer::print_type<int>();
template void Printer::print_type<char>();
template void Printer::print_type<double>();
}
=========================
Plik tmp2-main.cpp (test)
=========================
#include "tmp2.hpp"
using tmp::Printer;
int main()
{
Printer p1( "aha" );
p1.print_type<int>();
p1.print_type<char>();
p1.print_type<double>();
// z tym nie dziala (blad kompilacji): p1.print_type<float>();
// czego oczywiscie nalezalo sie spodziewac.
}
===========================
Pozdrawiam,
Tomek Bywalec
Następne wpisy z tego wątku
- 27.08.09 13:09 Megas
- 27.08.09 13:16 Tomasz Bywalec
- 27.08.09 13:22 Megas
- 27.08.09 13:23 Megas
- 27.08.09 13:33 Megas
- 27.08.09 13:51 Arek (G)
- 27.08.09 13:55 Tomasz Bywalec
- 27.08.09 14:39 Megas
- 27.08.09 15:06 Megas
Najnowsze wątki z tej grupy
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-14 Prątki to zawalidrogi
- 2026-01-14 Naruszenie immunitetu ZP-RE Romanowskiego bezkarne (umorzenie śledztwa żurkotury)
- 2026-01-14 Prezydent Trzaskowski nie będzie mógł ułaskawić Tuska, Sienkiewicza, Bodnara, ... przed prawomocnym wyrokiem?
- 2026-01-14 Do Kongresu SZAP/USONA Złożono Proj. ,,Ustawy o aneksji i statusie stanowym Grenlandii"
- 2026-01-13 STREFA CZYSTEGO TRANSPORTU. O tym nie mówią nam WŁADZE
- 2026-01-13 To nie koniec
- 2026-01-13 Warszawa => Recruiter 360 <=
- 2026-01-13 Katowice => Key Account Manager <=
- 2026-01-13 Warszawa => Senior Backend Java Developer <=
- 2026-01-13 Wrocław => ERP Implementation Consultant <=
- 2026-01-13 Elektryk a otwieranie drzwi :-)
- 2026-01-12 Schemat automatyki
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Polska Grupa Zbrojeniowa (85% udziałów) Likwiduje Stomil-Poznań - Zakład Działał Od 1928r.
- 2026-01-12 Teoretyczne zagadnienie - ogrzewanie budynku




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]