C
coder_lol
MS VS 7.0 happily resolves by SmartPointer and Inheritance, but I got
to use another target compiler and it does not accept user conversion
for templates. Can I forced a recast somehow? I have judiciously
checked almost all constructs with both compiler before coding, but
during a heavy session, I forgot to check the user conversion part,
and now, I am stuck big time
So here is my user conversion for a smart pointer class (direct from
Scott Meyer)
public:
template<class aNewType> operator SmartPointer<aNewType>()
{
return SmartPointer<aNewType>(pointee);
}
For example,
Class Person;
Class Employee : Person
Class Student : Person
SmartPointer<Person> p;
SmartPointer<Employee> e;
SmartPointer<Student> s
p = e; // "Ambigous user conversion"
Can I safely force the recast? I have only 1-level of inheritance,
so maybe there is a quick rewrite that is safe?
Thanks,
to use another target compiler and it does not accept user conversion
for templates. Can I forced a recast somehow? I have judiciously
checked almost all constructs with both compiler before coding, but
during a heavy session, I forgot to check the user conversion part,
and now, I am stuck big time
So here is my user conversion for a smart pointer class (direct from
Scott Meyer)
public:
template<class aNewType> operator SmartPointer<aNewType>()
{
return SmartPointer<aNewType>(pointee);
}
For example,
Class Person;
Class Employee : Person
Class Student : Person
SmartPointer<Person> p;
SmartPointer<Employee> e;
SmartPointer<Student> s
p = e; // "Ambigous user conversion"
Can I safely force the recast? I have only 1-level of inheritance,
so maybe there is a quick rewrite that is safe?
Thanks,