# Date-Time Build-Compiler Information

Overall Index -- Gregorian Index -- Posix Time Index

Overview -- Compilation Options -- Compiler/Portability Notes -- Directory Structure -- Required Boost Libraries

## Overview

The library has several functions that require the creation of a library file. The Jamfile in the build directory will produce a library (libboost_date_time) that contains these functions.
ライブラリ関数のいくつかはライブラリファイルを作成する必要がある。 これらの関数を含むライブラリ(libboost_date_time)を作成するには、buildディレクトリにあるJamfileを使う。

The variable DATE_TIME_INLINE is used to control the inlining of certain core functions. By default this variable is defined by in the compilation of the library. All compiles using the library must also include this define or linking errors will result.
変数DATE_TIME_INLINEは、ある特定のコア関数のインライン化を制御する。 デフォルトでこの変数はライブラリのコンパイル時に定義されている。 ライブラリを使っている全てのコンパイル単位でこの定義を含んでいなければ、リンクエラーになるだろう。

## Compilation Options

By default the posix_time system uses a 64 bit integer and a 32 bit integer internally to provide nano-second level resolutions. As an alternative, a single 64 bit integer can be used to provide a microsecond level resolution. This alternative implementation may provide better performance and more compact memory usage for many applications that do not require nano-second resolutions.
デフォルトでは posix_time はナノ秒レベルの精度を提供するために内部で 64bit整数と32bit整数を使う。 選択肢として、一つの 64bit整数でマイクロ秒レベルの精度を提供することもできる。 この代替実装は、ナノ秒精度を必要としない多くのアプリケーションでパフォーマンスの向上と省メモリが期待できる。

The variable BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG, as defined in build/Jamfile, selects between these options. To select the 64 bit integer implementation simply remove this define from the Jamfile.
変数BOOST_DATE_TIME_POSIX_TIME_STD_CONFIGはbuild/Jamfileで定義されており、これらのオプションを選択する。 64bit整数版を使う場合、単にJamfileからこの定義を削除する。

## Compiler/Portability Notes

The Boost Date-Time library has been built and tested with many compilers. However, some compilers and standard libraries have issues. While some of these issues can be worked around, others are difficult to work around. The following compilers fully support all aspects of the library:
Boost Date-Time libraryは、多くのコンパイラでビルドされテストされた。 しかしながら、いくつかのコンパイラと標準ライブラリで問題がある。 これらの問題のいくつかは回避可能であるが、回避できない問題も残っている。 以下のコンパイラはライブラリの機能を完全にサポートしている。

- GCC 3.0.3 on Linux
- GCC 3.1 (cygwin)
- MSVC 7

In particular, a lack of support for standard locales limits the ability of the library to support iostream based input output. For these compilers a set of more limited string based input-output is provided.
特に、標準ロケールに対するサポートが完全でないと iosteam ベースの入出力サポートが制約される事がある。そういったコンパイラのために、より限定された文字列ベースの入出力を提供している。
The compilers/stadard libraries with this limitation include:
以下のコンパイラ及び標準ライブラリはこの制約を含む

- GCC 2.9x on Linux
- Borland 5.1.1 and 5.6
- MSVC 6 SP5

Other compilers such as Comeau and Metroworks have been tested sucessfully with earlier versions of the library.
ComeauやMetroworksといった他のコンパイラでは、ライブラリの初期バージョンでテストに成功している。

## Directory Structure

The date_time directory structure has been changed for boost submission.
date_timeのディレクトリ構成はBoostに合わせて変更された。

The directory tree has the following structure:
ディレクトリ構成は次のようになっている

      /boost/date_time                    -- common headers and template code 共通ヘッダ及びテンプレート
      /boost/date_time/gregoran           -- gregorian calendar system header files グレゴリオ暦 system header files
      /boost/date_time/posix_time         -- posix time system headers
      /libs/date_time/build               -- build files and output directory
      /libs/date_time/test                -- test battery for generic code ジェネリックコードに関するテスト一式
      /libs/date_time/test/gregorian      -- test battery for the gregorian system グレゴリオ暦に関するテスト一式
      /libs/date_time/examples/gregorian  -- nifty example programs nifty example programs
      /libs/date_time/src/gregorian       -- cpp files for libboost_date_time libboost_date_time用のcppファイル
      /libs/date_time/test/posix_time     -- test battery for the posix_time system posix_time 系に関するテスト一式
      /libs/date_time/examples/posix_time -- time example programs time example programs
      /libs/date_time/src/posix_time      -- empty (one file, but no source code...) 空 (ファイルが一つあるが、ソースコードではない)

## Required Boost Libraries

The library depends on
このライブラリは以下のライブラリに依存している。

- boost.tokenizer
- boost.integer(cstdint)
- boost.operators
- boost::lexical_cast

so at least these libraries need to be installed.
よって、最低限これらのライブラリがインストールされている必要がある。