Theolizer  Version.1.2.0
serializer for C++ / Do you want to update your classes easily ?
avoid-trouble.h
1 //############################################################################
2 // コンパイラや外部ライブラリのトラブル回避措置
3 /*
4  © 2016 Theoride Technology (http://theolizer.com/) All Rights Reserved.
5  "Theolizer" is a registered trademark of Theoride Technology.
6 
7  "Theolizer" License
8  In the case where you are in possession of a valid “Theolizer” License,
9  you may use this file in accordance with the terms and conditions of
10  the use license determined by Theoride Technology.
11 
12  General Public License Version 3 ("GPLv3")
13  You may use this file in accordance with the terms and conditions of
14  GPLv3 published by Free Software Foundation.
15  Please confirm the contents of GPLv3 at https://www.gnu.org/licenses/gpl.txt .
16  A copy of GPLv3 is also saved in a LICENSE.TXT file.
17 
18  商用ライセンス
19  あなたが有効なTheolizer商用ライセンスを保持している場合、
20  セオライド テクノロジーの定める使用許諾書の条件に従って、
21  このファイルを取り扱うことができます。
22 
23  General Public License Version 3(以下GPLv3)
24  Free Software Foundationが公表するGPLv3の使用条件に従って、
25  あなたはこのファイルを取り扱うことができます。
26  GPLv3の内容を https://www.gnu.org/licenses/gpl.txt にて確認して下さい。
27  またGPLv3のコピーをLICENSE.TXTファイルにおいてます。
28 */
29 //############################################################################
30 
31 #if !defined(THEOLIZER_INTERNAL_AVOID_TROUBLE_H)
32 #define THEOLIZER_INTERNAL_AVOID_TROUBLE_H
33 
34 // ***************************************************************************
35 // MSVCのセキュリティ警告を止める
36 // ***************************************************************************
37 
38 #if defined(_MSC_VER) // disabling MSVC warnings
39  #ifndef _SCL_SECURE_NO_WARNINGS
40  #define _SCL_SECURE_NO_WARNINGS
41  #endif
42 #endif
43 
44 // ***************************************************************************
45 // MinGW 5.2.0の不具合と思われるもの
46 // ***************************************************************************
47 
48 #if defined(__MINGW32__)
49  #if (__GNUC__ == 5) && (__GNUC_MINOR__ >= 2)
50 
51 //----------------------------------------------------------------------------
52 // localtime_r()とlocaltime_r()がundefinedになる問題対策
53 //----------------------------------------------------------------------------
54 
55  #define _POSIX_C_SOURCE 200809L
56 
57  #endif
58 #endif
59 
60 // ***************************************************************************
61 // MinGW/gccとboostの組み合わせで発生する問題
62 // ***************************************************************************
63 
64 #define THEOLIZER_INTERNAL_PRAGMA(x) _Pragma(#x)
65 
66 //----------------------------------------------------------------------------
67 // boostの一部(format.hpp等)をインクルードすると
68 // boost、および、標準ライブラリのヘッダでauto_ptr警告が表示される
69 // boostをインクルードする前に定義する
70 //----------------------------------------------------------------------------
71 
72 #if defined(__GNUC__)
73  #define THEOLIZER_INTERNAL_DISABLE_WARNING() \
74  THEOLIZER_INTERNAL_PRAGMA(GCC diagnostic ignored "-Wdeprecated-declarations")\
75  THEOLIZER_INTERNAL_PRAGMA(GCC diagnostic ignored "-Wunused-variable")\
76  THEOLIZER_INTERNAL_PRAGMA(GCC diagnostic ignored "-Wunused-local-typedefs")
77  #define THEOLIZER_INTERNAL_DISABLE_WARNING_SIGN_COMPARE() \
78  THEOLIZER_INTERNAL_PRAGMA(GCC diagnostic ignored "-Wsign-compare")
79 #else
80  #define THEOLIZER_INTERNAL_DISABLE_WARNING()
81  #define THEOLIZER_INTERNAL_DISABLE_WARNING_SIGN_COMPARE()
82 #endif
83 
84 #endif // THEOLIZER_INTERNAL_AVOID_TROUBLE_H