/usr/include/boost/regex/v4
NameSizeModeActions
basic_regex.hpp240890644editdlrm
basic_regex_creator.hpp542060644editdlrm
basic_regex_parser.hpp1128510644editdlrm
char_regex_traits.hpp17260644editdlrm
cpp_regex_traits.hpp394250644editdlrm
cregex.hpp109870644editdlrm
c_regex_traits.hpp54970644editdlrm
error_type.hpp12580644editdlrm
fileiter.hpp143770644editdlrm
indexed_bit_flag.hpp13160644editdlrm
instances.hpp90800644editdlrm
iterator_category.hpp19600644editdlrm
iterator_traits.hpp38020644editdlrm
match_flags.hpp69340644editdlrm
match_results.hpp227730644editdlrm
mem_block_cache.hpp31320644editdlrm
perl_matcher.hpp188470644editdlrm
perl_matcher_common.hpp304760644editdlrm
perl_matcher_non_recursive.hpp632380644editdlrm
perl_matcher_recursive.hpp345400644editdlrm
primary_transform.hpp33470644editdlrm
protected_call.hpp16880644editdlrm
regbase.hpp59720644editdlrm
regex.hpp45900644editdlrm
regex_format.hpp342310644editdlrm
regex_fwd.hpp16460644editdlrm
regex_grep.hpp48790644editdlrm
regex_iterator.hpp64740644editdlrm
regex_match.hpp144750644editdlrm
regex_merge.hpp27650644editdlrm
regex_raw_buffer.hpp36860644editdlrm
regex_replace.hpp29250644editdlrm
regex_search.hpp70970644editdlrm
regex_split.hpp49560644editdlrm
regex_token_iterator.hpp126130644editdlrm
regex_traits.hpp49650644editdlrm
regex_traits_defaults.hpp115550644editdlrm
regex_workaround.hpp61710644editdlrm
states.hpp119150644editdlrm
sub_match.hpp231550644editdlrm
syntax_type.hpp43740644editdlrm
u32regex_iterator.hpp64750644editdlrm
u32regex_token_iterator.hpp150680644editdlrm
w32_regex_traits.hpp244550644editdlrm
Edit: /usr/include/boost/regex/v4/regex_workaround.hpp (6171B)
/* * * Copyright (c) 1998-2005 * John Maddock * * Use, modification and distribution are subject to the * Boost Software License, Version 1.0. (See accompanying file * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) * */ /* * LOCATION: see http://www.boost.org for most recent version. * FILE regex_workarounds.cpp * VERSION see * DESCRIPTION: Declares Misc workarounds. */ #ifndef BOOST_REGEX_WORKAROUND_HPP #define BOOST_REGEX_WORKAROUND_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef BOOST_NO_STD_LOCALE # include #endif #if defined(BOOST_NO_STDC_NAMESPACE) namespace std{ using ::sprintf; using ::strcpy; using ::strcat; using ::strlen; } #endif namespace boost{ namespace BOOST_REGEX_DETAIL_NS{ #ifdef BOOST_NO_STD_DISTANCE template std::ptrdiff_t distance(const T& x, const T& y) { return y - x; } #else using std::distance; #endif }} #ifdef BOOST_REGEX_NO_BOOL # define BOOST_REGEX_MAKE_BOOL(x) static_cast((x) ? true : false) #else # define BOOST_REGEX_MAKE_BOOL(x) static_cast(x) #endif /***************************************************************************** * * Fix broken namespace support: * ****************************************************************************/ #if defined(BOOST_NO_STDC_NAMESPACE) && defined(__cplusplus) namespace std{ using ::ptrdiff_t; using ::size_t; using ::abs; using ::memset; using ::memcpy; } #endif /***************************************************************************** * * helper functions pointer_construct/pointer_destroy: * ****************************************************************************/ #ifdef __cplusplus namespace boost{ namespace BOOST_REGEX_DETAIL_NS{ #ifdef BOOST_MSVC #pragma warning (push) #pragma warning (disable : 4100) #endif template inline void pointer_destroy(T* p) { p->~T(); (void)p; } #ifdef BOOST_MSVC #pragma warning (pop) #endif template inline void pointer_construct(T* p, const T& t) { new (p) T(t); } }} // namespaces #endif /***************************************************************************** * * helper function copy: * ****************************************************************************/ #ifdef __cplusplus namespace boost{ namespace BOOST_REGEX_DETAIL_NS{ #if BOOST_WORKAROUND(BOOST_MSVC,>=1400) && BOOST_WORKAROUND(BOOST_MSVC, <1600) && defined(_CPPLIB_VER) && defined(BOOST_DINKUMWARE_STDLIB) && !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) // // MSVC 8 will either emit warnings or else refuse to compile // code that makes perfectly legitimate use of std::copy, when // the OutputIterator type is a user-defined class (apparently all user // defined iterators are "unsafe"). This code works around that: // template inline OutputIterator copy( InputIterator first, InputIterator last, OutputIterator dest ) { return stdext::unchecked_copy(first, last, dest); } template inline bool equal( InputIterator1 first, InputIterator1 last, InputIterator2 with ) { return stdext::unchecked_equal(first, last, with); } #elif BOOST_WORKAROUND(BOOST_MSVC, > 1500) // // MSVC 10 will either emit warnings or else refuse to compile // code that makes perfectly legitimate use of std::copy, when // the OutputIterator type is a user-defined class (apparently all user // defined iterators are "unsafe"). What's more Microsoft have removed their // non-standard "unchecked" versions, even though their still in the MS // documentation!! Work around this as best we can: // template inline OutputIterator copy( InputIterator first, InputIterator last, OutputIterator dest ) { while(first != last) *dest++ = *first++; return dest; } template inline bool equal( InputIterator1 first, InputIterator1 last, InputIterator2 with ) { while(first != last) if(*first++ != *with++) return false; return true; } #else using std::copy; using std::equal; #endif #if BOOST_WORKAROUND(BOOST_MSVC,>=1400) && defined(__STDC_WANT_SECURE_LIB__) && __STDC_WANT_SECURE_LIB__ // use safe versions of strcpy etc: using ::strcpy_s; using ::strcat_s; #else inline std::size_t strcpy_s( char *strDestination, std::size_t sizeInBytes, const char *strSource ) { std::size_t lenSourceWithNull = std::strlen(strSource) + 1; if (lenSourceWithNull > sizeInBytes) return 1; std::memcpy(strDestination, strSource, lenSourceWithNull); return 0; } inline std::size_t strcat_s( char *strDestination, std::size_t sizeInBytes, const char *strSource ) { std::size_t lenSourceWithNull = std::strlen(strSource) + 1; std::size_t lenDestination = std::strlen(strDestination); if (lenSourceWithNull + lenDestination > sizeInBytes) return 1; std::memcpy(strDestination + lenDestination, strSource, lenSourceWithNull); return 0; } #endif inline void overflow_error_if_not_zero(std::size_t i) { if(i) { std::overflow_error e("String buffer too small"); boost::throw_exception(e); } } }} // namespaces #endif // __cplusplus #endif // include guard