Fixed VC6 compilation - wxAny(const wxVariant&) ctor required a specific 'template<>')

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64011 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2010-04-17 08:59:13 +00:00
parent 152442d40d
commit ea412ac4eb
2 changed files with 13 additions and 9 deletions

View File

@@ -679,11 +679,19 @@ public:
/**
Various constructors.
*/
template<typename T>
wxAny(const T& value)
{
m_type = wxAnyValueTypeImpl<T>::sm_instance;
wxAnyValueTypeImpl<T>::SetValue(value, m_buffer);
}
wxAny(const char* value)
{
m_type = wxAnyNullValueType;
Assign(wxString(value));
}
wxAny(const wchar_t* value)
{
m_type = wxAnyNullValueType;
@@ -697,6 +705,7 @@ public:
}
#if wxUSE_VARIANT
template<>
wxAny(const wxVariant& variant)
{
m_type = wxAnyNullValueType;
@@ -704,12 +713,6 @@ public:
}
#endif
template<typename T>
wxAny(const T& value)
{
m_type = wxAnyValueTypeImpl<T>::sm_instance;
wxAnyValueTypeImpl<T>::SetValue(value, m_buffer);
}
//@}
/**
@@ -914,6 +917,7 @@ public:
#if wxUSE_VARIANT
// GetAs() wxVariant specialization
template<>
bool GetAs(wxVariant* value) const
{
return wxConvertAnyToVariant(*this, value);

View File

@@ -224,15 +224,15 @@ wxAny wxVariant::GetAny() const
wxAny any;
if ( IsNull() )
return wxAny((const wxAny&)any);
return any;
wxVariantData* data = GetData();
if ( data->GetAsAny(&any) )
return wxAny((const wxAny&)any);
return any;
// If everything else fails, wrap the whole wxVariantData
return wxAny(((wxVariantData*)data));
return wxAny(data);
}
#endif // wxUSE_ANY