| Topic: |
DEVELOP > c-Plus-Plus |
| User: |
"Alexander Stippler" |
| Date: |
15 Aug 2003 04:18:16 AM |
| Object: |
partial specialization of function template |
Hi,
the following code does not compile. Why and how can I reach the desired
effect?
template <int n, typename T>
double
norm(const T &t)
{ return 0.0; }
template <typename T>
double
norm<2,T>(const T &)
{ return 2.0; }
class A
{
};
int
main()
{
A a;
norm<2>(a);
return 0;
}
regards,
alex
.
|
|
| User: "Rob Williscroft" |
|
| Title: Re: partial specialization of function template |
15 Aug 2003 06:25:57 AM |
|
|
Alexander Stippler wrote in news:3f3ca5a6@news.uni-ulm.de:
Hi,
the following code does not compile. Why and how can I reach the
desired effect?
template <int n, typename T>
double
norm(const T &t)
{ return 0.0; }
template <typename T>
double
norm<2,T>(const T &)
{ return 2.0; }
class A
{
};
int
main()
{
A a;
norm<2>(a);
return 0;
}
#include <iostream>
#include <ostream>
template < int N, typename T>
struct do_norm
{
static double apply( T const &t )
{
return 0.0;
}
};
template < typename T >
struct do_norm< 2, T >
{
static double apply( T const &t )
{
return 2.0;
}
};
template < int N, typename T>
double norm( T const &t )
{
return do_norm< N, T >::apply( t );
}
struct A {};
int main()
{
A a;
std::cout << norm<2>(a) << std::endl;
std::cout << norm<1>(1) << std::endl;
}
HTH
Rob.
--
http://www.victim-prime.dsl.pipex.com/
.
|
|
|
|

|
Related Articles |
|
|