Common ODB Runtime Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
memory.hxx
Go to the documentation of this file.
1 // file : odb/tr1/memory.hxx
2 // copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC
3 // license : GNU GPL v2; see accompanying LICENSE file
4 
5 #ifndef ODB_TR1_MEMORY_HXX
6 #define ODB_TR1_MEMORY_HXX
7 
8 //
9 // Try to include TR1 <memory> in a compiler-specific manner. Fall back
10 // on the Boost TR1 implementation if the compiler does not support TR1.
11 //
12 
13 #include <cstddef> // __GLIBCXX__, _HAS_TR1
14 
15 // GNU C++ or Intel C++ using libstd++.
16 //
17 #if defined (__GNUC__) && __GNUC__ >= 4 && defined (__GLIBCXX__)
18 # include <tr1/memory>
19 //
20 // IBM XL C++.
21 //
22 #elif defined (__xlC__) && __xlC__ >= 0x0900
23 # define __IBMCPP_TR1__
24 # include <memory>
25 //
26 // VC++ or Intel C++ using VC++ standard library.
27 //
28 #elif defined (_MSC_VER) && \
29  (_MSC_VER == 1500 && defined (_HAS_TR1) || _MSC_VER > 1500)
30 # include <memory>
31 //
32 // Boost fall-back.
33 //
34 #else
35 # include <boost/tr1/memory.hpp>
36 #endif
37 
38 #endif // ODB_TR1_MEMORY_HXX