void uninitialize();
initializeで生成したXtal環境のうち、Currentに設定されているものを破棄します。
オブジェクトを保持しているSmartPtrが残っている場合には関数内でassertされますので、オブジェクトの寿命を狭めるか、xtal::nullを代入してください。
#include <xtal.h> #include <xtal_lib/xtal_cstdiostream.h> #include <xtal_lib/xtal_chcode.h> #include <xtal_lib/xtal_errormessage.h> #ifdef WIN32 #include <xtal_lib/xtal_winthread.h> #include <xtal_lib/xtal_winfilesystem.h> #else // WIN32 #include <xtal_lib/xtal_pthread.h> #include <xtal_lib/xtal_posixfilesystem.h> #endif // WIN32 int main(){ xtal::CStdioStdStreamLib std_stream_lib; #ifdef WIN32 xtal::WinThreadLib thread_lib; xtal::WinFilesystemLib filesystem_lib; #else // WIN32 xtal::PThreadLib thread_lib; xtal::PosixFilesystemLib filesystem_lib; #endif // WIN32 xtal::UTF8ChCodeLib ch_code_lib; xtal::Setting setting; setting.std_stream_lib = &std_stream_lib; setting.thread_lib = &thread_lib; setting.filesystem_lib = &filesystem_lib; setting.ch_code_lib = &ch_code_lib; xtal::initialize(setting); // Xtalのオブジェクトへのアクセスが可能な状態になる xtal::stdout_stream()->println("Hello xtal"); xtal::StringPtr str("sample text"); // uninitialize前にString("sample text")をGC回収可能な状態にする str = xtal::null; xtal::uninitialize(); return 0; }
Hello xtal