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