mralizadeh در حال رشد
تاريخ عضويت: 1 شنبه 16 اسفند 1383 تعداد ارسالها: 65 محل سكونت: تهران
1 شنبه 9 آبان 1389 - 14:30 |
|
|
سلام
ما تعداد زيادی کلاس کوچک native cpp داريم که با استفاده از Boost سريالايز ميشن و مشکلی ندارن.
ما نياز داريم که بعضی از فيلدهای اين کلاسها رو property کنيم و کلاسش رو هم به ref class تغيير بديم تا بتونيم از PropertyGrid برای دسترسی آسون به اين کلاسها استفاده کنيم. اما با اين کار کلی پيغام خطا دريافت کرديم.
از جمله:
كد: |
#1:
`error C2893: Failed to specialize function template 'boost::archive::text_oarchive &boost::archive::detail::interface_oarchive<Archive>::operator <<(T &)' d:\someAddress\someFile.cpp 58`
#2:
`error C2784: 'std::basic_ostream<_Elem,_Traits> &std::operator <<(std::basic_ostream<_Elem,_Traits> &,const std::_Smanip<_Arg> &)' : could not deduce template argument for 'std::basic_ostream<_Elem,_Traits> &' from 'boost::archive::text_oarchive' d:\someAddress\someFile.cpp 58`
|
تعداد اين کلاسهامون خيلی زياده و نمی خوايم که برای تک تکشون wrapper بنويسيم.
اينم کد تست ماست:
كد: |
ref class gps_position2
{
public:
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & seconds;
}
public:
gps_position(){};
gps_position(float s)
{
this->seconds = s;
}
property float seconds;
};
---------------------------------------
int main()
{
std::ofstream ofs("out.txt");
gps_position2 g(24.567f);
// save data to archive
{
boost::archive::text_oarchive oa(ofs);
// write class instance to archive
oa << g;
}
// ................
return 0;
}
|
کسی ميدونه که Boost::Serialization با Managed class کار می کنه يا نه؟
با تشکر. |
|
|