warning:cannot pass objects of non-POD type

移植代码到Linux下,运行总是崩溃(在windows下正常)。
调试发现问题出在下列语句:
   wxString szSiteHead = wxString::Format( wxT("<Location /%s>"), file.GetName() );
查看编译记录有下列警告信息
   warning: cannot pass objects of non-POD type 'class wxString' through '...'; call will abort at runtime|
提示在运行时会异常。
 
查找 POD type定义如下:
 
POD stands for Plain Old Data - that is, a struct (or class) with no members except data members. Wikipedia goes into a bit more detail and defines a POD in C++ as "A Plain Old Data Structure in C++ is an aggregate class that contains only PODS as members, has no user-defined destructor, no user-defined copy assignment operator, and no nonstatic members of pointer-to-member type."
 
代码更改后OK。
wxString szSiteHead = wxString::Format( wxT("<Location /%s>"), file.GetName().c_str() );
发布了52 篇原创文章 · 获赞 7 · 访问量 15万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章