OR-Tools  8.1
macros.h
Go to the documentation of this file.
1 // Copyright 2010-2018 Google LLC
2 // Licensed under the Apache License, Version 2.0 (the "License");
3 // you may not use this file except in compliance with the License.
4 // You may obtain a copy of the License at
5 //
6 // http://www.apache.org/licenses/LICENSE-2.0
7 //
8 // Unless required by applicable law or agreed to in writing, software
9 // distributed under the License is distributed on an "AS IS" BASIS,
10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 // See the License for the specific language governing permissions and
12 // limitations under the License.
13 
14 #ifndef OR_TOOLS_BASE_MACROS_H_
15 #define OR_TOOLS_BASE_MACROS_H_
16 
17 #include <cstdlib> // for size_t.
18 
19 #define COMPILE_ASSERT(x, msg)
20 
21 #ifdef NDEBUG
22 const bool DEBUG_MODE = false;
23 #else // NDEBUG
24 const bool DEBUG_MODE = true;
25 #endif // NDEBUG
26 
27 // DISALLOW_COPY_AND_ASSIGN disallows the copy and operator= functions.
28 // It goes in the private: declarations in a class.
29 #define DISALLOW_COPY_AND_ASSIGN(TypeName) \
30  TypeName(const TypeName&); \
31  void operator=(const TypeName&)
32 
33 template <typename T, size_t N>
34 char (&ArraySizeHelper(T (&array)[N]))[N];
35 #ifndef COMPILER_MSVC
36 template <typename T, size_t N>
37 char (&ArraySizeHelper(const T (&array)[N]))[N];
38 #endif
39 #define arraysize(array) (sizeof(ArraySizeHelper(array)))
40 
41 #endif // OR_TOOLS_BASE_MACROS_H_
DEBUG_MODE
const bool DEBUG_MODE
Definition: macros.h:24
ArraySizeHelper
char(& ArraySizeHelper(T(&array)[N]))[N]