-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!new
sfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
From: Tomasz Bywalec <t...@p...dont.spam.me.o2.pl>
Newsgroups: pl.comp.programming
Subject: Re: szablony metod - deklaracja i definicja
Date: Thu, 27 Aug 2009 15:01:03 +0200
Organization: TP - http://www.tp.pl/
Lines: 85
Message-ID: <h7606u$5st$1@atlantis.news.neostrada.pl>
References: <h741o5$vof$1@news.onet.pl> <h7462k$4vj$1@inews.gazeta.pl>
<h75on2$kj2$1@news.onet.pl> <h75uui$85l$1@news.onet.pl>
NNTP-Posting-Host: aemw73.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: atlantis.news.neostrada.pl 1251378208 6045 79.191.74.73 (27 Aug 2009
13:03:28 GMT)
X-Complaints-To: u...@n...neostrada.pl
NNTP-Posting-Date: Thu, 27 Aug 2009 13:03:28 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
In-Reply-To: <h75uui$85l$1@news.onet.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:183362
[ ukryj 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
- 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
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek
- 2025-07-13 Unia Europejska przygotowuje nowy podatek
- 2025-07-12 Warszawa => PC Hardware Expert / Specjalista PC <=
- 2025-07-12 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2025-07-12 Warszawa => Administrator IT <=
- 2025-07-12 Warszawa => IT Administrator <=
- 2025-07-12 Warszawa => Asystent/tka ds. Administracji <=
- 2025-07-12 Warszawa => Specjalista/stka ds. Organizacji <=
- 2025-07-12 Warszawa => MENA New Business Manager <=
- 2025-07-12 Gdynia => Controlling systems Consultant <=
- 2025-07-12 Warszawa => Developer Microsoft Dynamics 365 Finance & Operations (D36
- 2025-07-12 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D
- 2025-07-12 Warszawa => Dyrektor IT <=