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)
13 * LOCATION: see http://www.boost.org for most recent version.
14 * FILE basic_regex_creator.cpp
15 * VERSION see <boost/version.hpp>
16 * DESCRIPTION: Declares template class basic_regex_creator which fills in
17 * the data members of a regex_data object.
20 #ifndef BOOST_REGEX_V4_PROTECTED_CALL_HPP
21 #define BOOST_REGEX_V4_PROTECTED_CALL_HPP
25 #pragma warning(disable: 4103)
27 #ifdef BOOST_HAS_ABI_HEADERS
28 # include BOOST_ABI_PREFIX
35 namespace BOOST_REGEX_DETAIL_NS{
37 class BOOST_REGEX_DECL abstract_protected_call
40 bool BOOST_REGEX_CALL execute()const;
41 // this stops gcc-4 from complaining:
42 virtual ~abstract_protected_call(){}
44 virtual bool call()const = 0;
48 class concrete_protected_call
49 : public abstract_protected_call
52 typedef bool (T::*proc_type)();
53 concrete_protected_call(T* o, proc_type p)
56 virtual bool call()const;
62 bool concrete_protected_call<T>::call()const
64 return (obj->*proc)();
72 #pragma warning(disable: 4103)
74 #ifdef BOOST_HAS_ABI_HEADERS
75 # include BOOST_ABI_SUFFIX