Boost logo

Boost :

From: Eric Ford (eford_at_[hidden])
Date: 2001-07-07 02:09:59


I'm working on a set of coordinate classes. Once I get them in shape,
I plan offer them here.

The idea is I want to allow the user to define a new coordinate system
just by adding the appropriate class and specializing a constructor
for some prexisting coordinate system using the new class as input.

Presently, I'm having a problem specializing a constructor...

I have the classes
  template<int Dimension, class TraitsType =
coordinate_system_traits<Dimension> > class CartesianCoordinates;
  template<int Dimension, class TraitsType =
coordinate_system_traits<Dimension> > class SphericalCoordinates;
 
Included is a constructor using a template for the argument...

  template<template<> class OtherSystemType>
  explicit CartesianCoordinates(OtherSystemType<Dimension,TraitsType>
const& x) throw();
 
Now I want to specialize that. Using pseduo-code, I'd like to do
something like:

    template<class TraitsT>
    CartesianCoordinates<3,TraitsT >(SphericalCoordinate<3,TraitsT>
const& x)
    { ... }

Unfortunately, that doesn't seem to work. I really don't want to have
to specialize template<class TraitsT> CartesianCoordinates<3,TraitsT>
when I just want to add one constructor. It appears I could also
solve this problem by eliminating the traits to the coordinate
system. But I don't like this option either.

Suggestions?

Thanks,
Eford


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk