====== initialize ====== void initialize(const Setting& setting); Xtalの実行環境を作成初期化し、Currentに設定します。内部的には、VMやテーブル、GCなどのモジュール生成や領域確保を行っているので、ほぼ全てのXtal関数に先立って実行されている必要があります。 マルチスレッド下での動作の詳細は別ページに説明を譲ることとします。xtal_setting.hのXTAL_NO_THREADのdefineの有無によって挙動を変更することが可能です。 作成した環境は[[uninitialize]]によって明示的に破棄されます。 引数のSettingクラスのインスタンスは[[uninitialize]]を呼び出すまで存在している必要があります。 ===== Example ===== ==== C++ ==== #include #include #include #include #ifdef WIN32 #include #include #else // WIN32 #include #include #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::uninitialize(); return 0; } ==== Output ==== Hello xtal