DOSEIの日記

技術メモ+日常ログ

Chapter 2 Preliminaries (準備事項)

  • ライセンス、関連ソフトウェア (3rd party software) については目を通す程度でいいだろう。
  • 名前空間について。すべての宣言は CGAL 名前空間の下に宣言される。 using namespace CGAL はお勧めできない、と。
  • ヘッダファイルの順番について。といっても、順番について書いてないような…。とりあえず、コンパイラ間の実装の差を埋めるために、 CGAL/basic.h を常に、最初に、インクルードするようにすると安全。ただし、 CGAL/Cartesian.hCGAL/Homogeneous.h は、勝手に読み込まれるので必要ないらしい。
  • インラインの制御。CGAL_*_INLINE というマクロに inline をつけるかどうかで。
  • バージョン情報を取得する方法。
  • スレッド安全性について
  • 非推奨コードを禁止するには CGAL_NO_DEPRECATED_CODE マクロを宣言する。
  • CGAL のコードは、アサーションがつけられている。 C 標準の NDEBUG ですべて消すことができるが、個別に制御する方法も用意されている。また、コストのかかるチェックと正確なチェックの一部はデフォルトで無効になっているので、有効にするマクロもある。前述のアサーションによるチェックが失敗した場合の挙動を決める方法についてなど。ここは、必要な時に読む。基本的には、NDEBUG だけわかっていればいいと思う。(詳しくは id:DOSEI:20090521:p1)