Menu

#167 Compiling errors with wxWidgets 3.0.2 on webUpdate

CVS_HEAD
open
nobody
None
5
2015-08-13
2015-08-13
Li Minggang
No

Build latest webupdate with VS 2010 for X64, got errors like below:

1>d:\wxWidgets-3.0.2\include\wx/any.h(216): error C2061: syntax error : identifier 'place'
1> d:\wxWidgets-3.0.2\include\wx/any.h(213) : while compiling class template member function 'void wxPrivate::wxAnyValueTypeOpsInplace<t>::SetValue(const T &,wxAnyValueBuffer &)'
1> with
1>
1> T=wxAnyBaseIntType
1>

1> d:\wxWidgets-3.0.2\include\wx/any.h(293) : see reference to class template instantiation 'wxPrivate::wxAnyValueTypeOpsInplace<t>' being compiled
1> with
1>
1> T=wxAnyBaseIntType
1>

1> d:\wxWidgets-3.0.2\include\wx/any.h(292) : while compiling class template member function 'void wxAnyValueTypeImplBase<t>::DeleteValue(wxAnyValueBuffer &) const'
1> with
1>
1> T=wxAnyBaseIntType
1>

1> d:\wxWidgets-3.0.2\include\wx/any.h(412) : see reference to class template instantiation 'wxAnyValueTypeImplBase<t>' being compiled
1> with
1>
1> T=wxAnyBaseIntType
1>

1>D:\minimal\webupdate\include\wx/webupdate.h(126): warning C4996: 'wxLog::DoLog': was declared deprecated
1> d:\wxWidgets-3.0.2\include\wx/log.h(619) : see declaration of 'wxLog::DoLog'
1>webupdate\src\webupdate.cpp(352): warning C4996: 'wxLog::DoLog': was declared deprecated
1> d:\wxWidgets-3.0.2\include\wx/log.h(619) : see declaration of 'wxLog::DoLog'
1>webupdate\src\webupdate.cpp(352): warning C4996: 'wxLog::DoLog': was declared deprecated
1> d:\wxWidgets-3.0.2\include\wx/log.h(619) : see declaration of 'wxLog::DoLog'
1>webupdate\src\webupdate.cpp(395): warning C4996: 'wxLog::DoLog': was declared deprecated
1> d:\wxWidgets-3.0.2\include\wx/log.h(619) : see declaration of 'wxLog::DoLog'
1>webupdate\src\webupdate.cpp(395): warning C4996: 'wxLog::DoLog': was declared deprecated
1> d:\wxWidgets-3.0.2\include\wx/log.h(619) : see declaration of 'wxLog::DoLog'
1>d:\wxWidgets-3.0.2\include\wx/any.h(216): error C2061: syntax error : identifier 'place'
1> d:\wxWidgets-3.0.2\include\wx/any.h(213) : while compiling class template member function 'void wxPrivate::wxAnyValueTypeOpsInplace<t>::SetValue(const T &,wxAnyValueBuffer &)'
1> with
1>
1> T=wxAnyBaseIntType
1>

1> d:\wxWidgets-3.0.2\include\wx/any.h(293) : see reference to class template instantiation 'wxPrivate::wxAnyValueTypeOpsInplace<t>' being compiled
1> with
1>
1> T=wxAnyBaseIntType
1>

1> d:\wxWidgets-3.0.2\include\wx/any.h(292) : while compiling class template member function 'void wxAnyValueTypeImplBase<t>::DeleteValue(wxAnyValueBuffer &) const'
1> with
1>
1> T=wxAnyBaseIntType
1>

1> d:\wxWidgets-3.0.2\include\wx/any.h(412) : see reference to class template instantiation 'wxAnyValueTypeImplBase<t>' being compiled
1> with
1>
1> T=wxAnyBaseIntType
1>

1>d:\wxWidgets-3.0.2\include\wx/any.h(216): error C2061: syntax error : identifier 'place'
1> d:\wxWidgets-3.0.2\include\wx/any.h(213) : while compiling class template member function 'void wxPrivate::wxAnyValueTypeOpsInplace<t>::SetValue(const T &,wxAnyValueBuffer &)'
1> with
1>
1> T=wxAnyBaseIntType
1>

1> d:\wxWidgets-3.0.2\include\wx/any.h(293) : see reference to class template instantiation 'wxPrivate::wxAnyValueTypeOpsInplace<t>' being compiled
1> with
1>
1> T=wxAnyBaseIntType
1>

1> d:\wxWidgets-3.0.2\include\wx/any.h(292) : while compiling class template member function 'void wxAnyValueTypeImplBase<t>::DeleteValue(wxAnyValueBuffer &) const'
1> with
1>
1> T=wxAnyBaseIntType
1>

1> d:\wxWidgets-3.0.2\include\wx/any.h(412) : see reference to class template instantiation 'wxAnyValueTypeImplBase<t>' being compiled
1> with
1>
1> T=wxAnyBaseIntType
1>

1>D:\minimal\webupdate\include\wx/webupdate.h(126): warning C4996: 'wxLog::DoLog': was declared deprecated
1> d:\wxWidgets-3.0.2\include\wx/log.h(619) : see declaration of 'wxLog::DoLog'
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:03.98
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========</t></t></t></t></t></t></t></t></t></t></t></t>

The code in any.h is a placement new.

static void SetValue(const T& value,
                     wxAnyValueBuffer& buf)
{
    // Use placement new
    void* const place = buf.m_buffer;
    ::new(place) T(value);
}

Discussion


Log in to post a comment.