本文整理汇总了C++中sf::Archive::getStream方法的典型用法代码示例。如果您正苦于以下问题:C++ Archive::getStream方法的具体用法?C++ Archive::getStream怎么用?C++ Archive::getStream使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sf::Archive
的用法示例。
在下文中一共展示了Archive::getStream方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: serializeFundamental
inline void serializeFundamental(SF::Archive &ar, T &t, const unsigned int, unsigned int count = 1)
{
typedef typename boost::remove_const<T>::type U;
BOOST_STATIC_ASSERT( boost::is_fundamental<U>::value );
U *pu = const_cast<U *>(&t);
void *pvt = pu;
if (ar.isRead())
{
I_Encoding &encoding = dynamic_cast<I_WithEncoding *>(ar.getStream())->getEncoding();
DataPtr data;
dynamic_cast<WithFormatRead *>(ar.getStream())->get(data);
if (count > 1 && count != encoding.getCount(data,typeid(U)) )
{
SF_THROW(SF::Exception, "Static array size mismatch" )(typeid(U).name())(count)(encoding.getCount(data,typeid(T)));
}
encoding.toObject(data, pvt, typeid(T), count );
}
else if (ar.isWrite())
{
I_Encoding &encoding = dynamic_cast<I_WithEncoding *>(ar.getStream())->getEncoding();
DataPtr data;
encoding.toData(data, pvt, typeid(U), count );
dynamic_cast<WithFormatWrite *>(ar.getStream())->put(data);
}
}