00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef PPL_initializer_hh
00025 #define PPL_initializer_hh 1
00026
00027 #include "Init.defs.hh"
00028
00029 #ifndef PPL_NO_AUTOMATIC_INITIALIZATION
00030 namespace {
00031
00032 Parma_Polyhedra_Library::Init Parma_Polyhedra_Library_initializer;
00033
00034 }
00035 #else
00036 namespace {
00037
00038 Parma_Polyhedra_Library::Init* Parma_Polyhedra_Library_initializer_p;
00039
00040 }
00041 #endif
00042
00043 namespace Parma_Polyhedra_Library {
00044
00046 inline void
00047 initialize() {
00048 #ifdef PPL_NO_AUTOMATIC_INITIALIZATION
00049 if (Parma_Polyhedra_Library_initializer_p == 0)
00050 Parma_Polyhedra_Library_initializer_p = new Init();
00051 #endif
00052 }
00053
00055 inline void
00056 finalize() {
00057 #ifdef PPL_NO_AUTOMATIC_INITIALIZATION
00058 PPL_ASSERT(Parma_Polyhedra_Library_initializer_p != 0);
00059 delete Parma_Polyhedra_Library_initializer_p;
00060 Parma_Polyhedra_Library_initializer_p = 0;
00061 #endif
00062 }
00063
00064 }
00065
00066 #endif // !defined(PPL_initializer_hh)