Re: compilation problem
alessio211734@yahoo.it wrote:
I would like compile c++ standard code on microsoft visual studio
2005.Code compile on borland builder 6.
template <typename T>
class MultiBaseNumber
{
public:
typedef T Type;
MultiBaseNumber(); //ctor
MultiBaseNumber(Type in_val); //ctor
Type Val() const;
bool IsValid() const;
private:
bool m_isValid;
Type m_val;
};//cl
template <typename T>
MultiBaseNumber<T>::MultiBaseNumber()
: m_isValid(false)
, m_val(0)
{;} //ctor
template <typename T>
MultiBaseNumber<T>::MultiBaseNumber(MultiBaseNumber<T>::Type in_val)
: m_isValid(true)
, m_val(in_val)
{;} //ctor
template <typename T>
MultiBaseNumber<T>::Type
MultiBaseNumber<T>::Val() const
{
return m_val;
}//mt
template <typename T>
bool
MultiBaseNumber<T>::IsValid() const
{
return m_isValid;
}//mt
//---
when try to compile I get these errors:
error C2061: syntax error : identifier 'Type'
error C2995: 'Ut::MultiBaseNumber<T>::MultiBaseNumber(void)' :
function template has already been defined
error C2143: syntax error : missing ';' before
'Ut::MultiBaseNumber<T>::Val'
error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
error C2888: 'MultiBaseNumber<T>::Type Type' : symbol cannot be
defined within namespace 'Ut'
Alessio:
The code compiles on online Comeau, so it's probably correct.
But what is Ut:: in your error messages? I do not see this namespace in
your code.
--
David Wilkinson
Visual C++ MVP