Template instantiation help needed
From: Jim West (eggplantparts_at_yahoo.com)
Date: 11/20/03
- Next message: Cheryl: "Re: c++ newbie question"
- Previous message: Dave: "Re: Casting Arrays"
- Next in thread: Rob Williscroft: "Re: Template instantiation help needed"
- Reply: Rob Williscroft: "Re: Template instantiation help needed"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 20 Nov 2003 02:56:23 GMT
I have a template class (for numerical processing) that was originally
written for real data that I need to extend to complex data, and I am
running into a problem. The current version (greatly simplified) has
something like
template <class T>
class FOO {
T A;
T B;
};
which works fine with T as any floating point type (float, double, etc.).
With complex data however, I would want A to be type complex<T> and B to
be type T. As the operations are identical for both real and complex
data (B represents the absolute value/magnitude of type of A) and the
actual template is quite large, I want to use the same template for both.
The obvious solution is to rewrite it as
template <class DATA, class ABS_TYPE>
class FOO {
DATA A;
ABS_TYPE B;
}
which can be instantiated with FOO<float, float>,
FOO<complex<double>, double>, etc., but that would break existing code
and add a possibility for error (FOO<complex<double>, float> would be
a disasterous loss of precision). Is there a way to get a template
to recognize automatically that B should be type T when A is instantiated
as either T or complex<T>?
- Next message: Cheryl: "Re: c++ newbie question"
- Previous message: Dave: "Re: Casting Arrays"
- Next in thread: Rob Williscroft: "Re: Template instantiation help needed"
- Reply: Rob Williscroft: "Re: Template instantiation help needed"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|