GRPC C++ 0.10.0.0

- Main Page
- Namespaces
- Data Structures
- Files

- File List
- Globals

All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
config.h
Go to the documentation of this file.
1 /*
2 *
3 * Copyright 2015, Google Inc.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above
13 * copyright notice, this list of conditions and the following disclaimer
14 * in the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Google Inc. nor the names of its
17 * contributors may be used to endorse or promote products derived from
18 * this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 */
33
34 #ifndef GRPCXX_CONFIG_H
35 #define GRPCXX_CONFIG_H
36
37 #if !defined(GRPC_NO_AUTODETECT_PLATFORM)
38
39 #ifdef _MSC_VER
40 // Visual Studio 2010 is 1600.
41 #if _MSC_VER < 1600
42 #error "gRPC is only supported with Visual Studio starting at 2010"
43 // Visual Studio 2013 is 1800.
44 #elif _MSC_VER < 1800
45 #define GRPC_CXX0X_NO_FINAL 1
46 #define GRPC_CXX0X_NO_OVERRIDE 1
47 #define GRPC_CXX0X_NO_CHRONO 1
48 #define GRPC_CXX0X_NO_THREAD 1
49 #endif
50 #endif // Visual Studio
51
52 #ifndef __clang__
53 #ifdef __GNUC__
54 // nullptr was added in gcc 4.6
55 #if (__GNUC__ * 100 + __GNUC_MINOR__ < 406)
56 #define GRPC_CXX0X_NO_NULLPTR 1
57 #endif
58 // final and override were added in gcc 4.7
59 #if (__GNUC__ * 100 + __GNUC_MINOR__ < 407)
60 #define GRPC_CXX0X_NO_FINAL 1
61 #define GRPC_CXX0X_NO_OVERRIDE 1
62 #endif
63 #endif
64 #endif
65
66 #endif
67
68 #ifdef GRPC_CXX0X_NO_FINAL
69 #define GRPC_FINAL
70 #else
71 #define GRPC_FINAL final
72 #endif
73
74 #ifdef GRPC_CXX0X_NO_OVERRIDE
75 #define GRPC_OVERRIDE
76 #else
77 #define GRPC_OVERRIDE override
78 #endif
79
80 #ifdef GRPC_CXX0X_NO_NULLPTR
81 #include <memory>
82 namespace grpc {
83 const class {
84 public:
85 template <class T>
86 operator T *() const {
87 return static_cast<T *>(0);
88 }
89 template <class T>
90 operator std::unique_ptr<T>() const {
91 return std::unique_ptr<T>(static_cast<T *>(0));
92 }
93 template <class T>
94 operator std::shared_ptr<T>() const {
95 return std::shared_ptr<T>(static_cast<T *>(0));
96 }
97 operator bool() const { return false; }
98
99 private:
100 void operator&() const = delete;
101 } nullptr = {};
102 }
103 #endif
104
105 #ifndef GRPC_CUSTOM_STRING
106 #include <string>
107 #define GRPC_CUSTOM_STRING std::string
108 #endif
109
110 namespace grpc {
111
112 typedef GRPC_CUSTOM_STRING string;
113
114 } // namespace grpc
115
116 #endif // GRPCXX_CONFIG_H
grpc::string
std::string string
Definition: config.h:112
GRPC_CUSTOM_STRING
#define GRPC_CUSTOM_STRING
Definition: config.h:107