Hi - I have some design problem. I made my Template Class:
Code:
class CParam : CParamI {
public:

	T operator=( T val ) {
		value = val;
		return value;
	}

	T getValue() {
		return value;
	}

	virtual CString makeString();	

private:
	T value;
};
implementation of "makeString" function depends on T type <float>, <int>, <COLEDatetime>:
Code:
template<> CString CParam<float>::makeString() {
	CString tmp;
	tmp.Format( _T("%0.2f"), value );
	return tmp;
}

template<> CString CParam<int>::makeString() {
	CString tmp;
	tmp.Format( _T("%0i"), value );
	return tmp;
}

template<> CString CParam<COleDateTime>::makeString() {
	return value.Format(dateFormat);
}
To put my CParam objects into std::map I made CParamI interface class with only one method: "makeString". I put all my CParam<T> objects overrided to CParamI into std::map<BYTE,CParamI>. Now, what should I do if I want to update values of some objects in my map (ie. add anything to CParam<float>) ? Is there any way to recognise type of CParam<T> ? Or maybe is there any way to make map from template class objects without using additional interface class ?