本文整理汇总了C++中FileStream::detach方法的典型用法代码示例。如果您正苦于以下问题:C++ FileStream::detach方法的具体用法?C++ FileStream::detach怎么用?C++ FileStream::detach使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileStream
的用法示例。
在下文中一共展示了FileStream::detach方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: save_to
void DFA_Interface::save_to(FILE* fp) const {
using namespace febird;
FileStream file;
file.attach(fp);
file.disbuf();
try {
NativeDataOutput<OutputBuffer> dio; dio.attach(&file);
#define ON_CLASS_IO(Class) \
if (const Class* au = dynamic_cast<const Class*>(this)) { \
dio << fstring(BOOST_STRINGIZE(Class)); \
dio << *au; \
dio.flush(); \
file.detach(); \
return;\
}
#include "dfa_class_io.hpp"
}
catch (...) {
file.detach();
throw;
}
file.detach();
string_appender<> msg;
msg << BOOST_CURRENT_FUNCTION << ": unknown Automata class: " << typeid(*this).name();
throw std::invalid_argument(msg);
}
示例2: load_from
DFA_Interface* DFA_Interface::load_from(FILE* fp) {
using namespace febird;
FileStream file;
file.attach(fp);
file.disbuf();
std::string className;
try {
NativeDataInput<InputBuffer> dio; dio.attach(&file);
dio >> className;
#define ON_CLASS_IO(Class) \
if (BOOST_STRINGIZE(Class) == className) { \
std::auto_ptr<Class> au(new Class); \
dio >> *au; \
file.detach(); \
return au.release(); \
}
#include "dfa_class_io.hpp"
}
catch (...) {
file.detach();
throw;
}
file.detach();
string_appender<> msg;
msg << BOOST_CURRENT_FUNCTION << ": unknown Automata class: " << className;
throw std::invalid_argument(msg);
}