-
Notifications
You must be signed in to change notification settings - Fork 1
/
ro.h
59 lines (40 loc) · 1.06 KB
/
ro.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// include all RO headers
#ifndef RO_H
#define RO_H
#include <ro/meta.h>
#include <ro/functor.h>
#include <ro/range.h>
#include <ro/stl.h>
#include <ro/io.h>
#include <ro/regex.h>
#ifndef scc_BOOST_LAMBDA
// lambda must be after stl.h, io.h, range,h
#include <ro/lambda.h>
#endif
#ifndef NDEBUG
#include "ro/debug.h"
#endif
//// CHECK IF C++11 MODE
// __cplusplus = 199711L / 201103L is only as of GCC 4.7.0 and higher, unless the patch gets backported. 4.6 and earlier use __cplusplus = 1
// GCC
#ifdef __GNUC__
#define GNUC_VER (__GNUC__ * 100 + __GNUC_MINOR__)
/* WHY IS THIS NOT WORKING
* #if GNUC_VER < 470
#error GNUC_VER "GCC of this version does not support RO"
#endif*/
#if !defined(__GXX_EXPERIMENTAL_CXX0X__)
#error "GCC: not C++11 mode (needed by RO)"
#endif
#endif
// CLANG
/* HOTO MAKE THIS TEST?
#if defined(__clang__) && !__has_feature(cxx_decltype)
#error "CLANG: not a C++11 mode "
#endif
*/
// MSVC (not tested)
#if defined(_MSC_VER) && _MSC_VER < 1600
#error "MSC: compiler does not support C++11"
#endif
#endif // RO_H