1 /*
2  *
3  * Copyright (c) 1998-2002
4  * John Maddock
5  *
6  * Use, modification and distribution are subject to the
7  * Boost Software License, Version 1.0. (See accompanying file
8  * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9  *
10  */
11 
12  /*
13   *   LOCATION:    see http://www.boost.org for most recent version.
14   *   FILE         boost/regex/config/borland.hpp
15   *   VERSION      see <boost/version.hpp>
16   *   DESCRIPTION: regex borland-specific config setup.
17   */
18 
19 
20 #if defined(__BORLANDC__) && !defined(__clang__)
21 #  if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551)
22       // problems with std::basic_string and dll RTL:
23 #     if defined(_RTLDLL) && defined(_RWSTD_COMPILE_INSTANTIATE)
24 #        ifdef BOOST_REGEX_BUILD_DLL
25 #           error _RWSTD_COMPILE_INSTANTIATE must not be defined when building regex++ as a DLL
26 #        else
27 #           pragma message("Defining _RWSTD_COMPILE_INSTANTIATE when linking to the DLL version of the RTL may produce memory corruption problems in std::basic_string, as a result of separate versions of basic_string's static data in the RTL and you're exe/dll: be warned!!")
28 #        endif
29 #     endif
30 #     ifndef _RTLDLL
31          // this is harmless for a staic link:
32 #        define _RWSTD_COMPILE_INSTANTIATE
33 #     endif
34       // external templates cause problems for some reason:
35 #     define BOOST_REGEX_NO_EXTERNAL_TEMPLATES
36 #  endif
37 #  if (__BORLANDC__ <= 0x540) && !defined(BOOST_REGEX_NO_LIB) && !defined(_NO_VCL)
38       // C++ Builder 4 and earlier, we can't tell whether we should be using
39       // the VCL runtime or not, do a static link instead:
40 #     define BOOST_REGEX_STATIC_LINK
41 #  endif
42    //
43    // VCL support:
44    // if we're building a console app then there can't be any VCL (can there?)
45 #  if !defined(__CONSOLE__) && !defined(_NO_VCL)
46 #     define BOOST_REGEX_USE_VCL
47 #  endif
48    //
49    // if this isn't Win32 then don't automatically select link
50    // libraries:
51    //
52 #  ifndef _Windows
53 #     ifndef BOOST_REGEX_NO_LIB
54 #        define BOOST_REGEX_NO_LIB
55 #     endif
56 #     ifndef BOOST_REGEX_STATIC_LINK
57 #        define BOOST_REGEX_STATIC_LINK
58 #     endif
59 #  endif
60 
61 #if __BORLANDC__ < 0x600
62 //
63 // string workarounds:
64 //
65 #include <cstring>
66 #undef strcmp
67 #undef strcpy
68 #endif
69 
70 #endif
71 
72 
73