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