OpenVolumeMesh
Toggle main menu visibility
Loading...
Searching...
No Matches
MemoryInclude.hh
1
/*===========================================================================*\
2
* *
3
* OpenVolumeMesh *
4
* Copyright (C) 2011 by Computer Graphics Group, RWTH Aachen *
5
* www.openvolumemesh.org *
6
* *
7
*---------------------------------------------------------------------------*
8
* This file is part of OpenVolumeMesh. *
9
* *
10
* OpenVolumeMesh is free software: you can redistribute it and/or modify *
11
* it under the terms of the GNU Lesser General Public License as *
12
* published by the Free Software Foundation, either version 3 of *
13
* the License, or (at your option) any later version with the *
14
* following exceptions: *
15
* *
16
* If other files instantiate templates or use macros *
17
* or inline functions from this file, or you compile this file and *
18
* link it with other files to produce an executable, this file does *
19
* not by itself cause the resulting executable to be covered by the *
20
* GNU Lesser General Public License. This exception does not however *
21
* invalidate any other reasons why the executable file might be *
22
* covered by the GNU Lesser General Public License. *
23
* *
24
* OpenVolumeMesh is distributed in the hope that it will be useful, *
25
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
26
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
27
* GNU Lesser General Public License for more details. *
28
* *
29
* You should have received a copy of the GNU LesserGeneral Public *
30
* License along with OpenVolumeMesh. If not, *
31
* see <http://www.gnu.org/licenses/>. *
32
* *
33
\*===========================================================================*/
34
35
/*===========================================================================*\
36
* *
37
* $Revision: 36 $ *
38
* $Date: 2012-01-10 18:00:06 +0100 (Di, 10 Jan 2012) $ *
39
* $LastChangedBy: kremer $ *
40
* *
41
\*===========================================================================*/
42
43
#ifndef MEMORYINCLUDE_HH_
44
#define MEMORYINCLUDE_HH_
45
49
#if (__cplusplus >= 201103L)
50
// C++11:
51
#include <memory>
52
namespace
ptr = std;
53
#define ACG_UNIQUE_POINTER_SUPPORTED 1
54
#elif defined(__GXX_EXPERIMENTAL_CXX0X__)
55
// C++11 via -std=c++0x on gcc:
56
#include <memory>
57
namespace
ptr = std;
58
#define ACG_UNIQUE_POINTER_SUPPORTED 1
59
#else
60
// C++98 and TR1:
61
#if (_MSC_VER >= 1600)
62
// VStudio 2010 supports some C++11 features
63
#include <memory>
64
namespace
ptr = std;
65
#define ACG_UNIQUE_POINTER_SUPPORTED 1
66
#elif (_MSC_VER >= 1500)
67
// hope for TR1 equivalents
68
#if(_HAS_TR1)
69
#include <memory>
70
namespace
ptr = std::tr1;
71
#define ACG_UNIQUE_POINTER_SUPPORTED 0
72
#else
73
#pragma warning "TR1 not available! Please install Visual Studio Service Pack 1!"
74
#endif
75
#else
76
// hope for TR1 equivalents
77
// check for clang5 but switch to tr1 if clang uses libstdc++
78
#if defined(__clang_major__) && (__clang_major__ >= 5) && !defined(__GLIBCXX__ )
79
// Mavericks special treatment
80
#include <memory>
81
namespace
ptr = std;
82
#else
83
#include <tr1/memory>
84
namespace
ptr = std::tr1;
85
#endif
86
#define ACG_UNIQUE_POINTER_SUPPORTED 0
87
#endif
88
#endif
89
90
#endif
/* MEMORYINCLUDE_HH_ */
Project
OpenVolumeMesh
, Computer Graphics Group Aachen,
RWTH Aachen