/Src/Dependencies/Boost/boost/regex/v4/protected_call.hpp
http://hadesmem.googlecode.com/ · C++ Header · 81 lines · 53 code · 10 blank · 18 comment · 0 complexity · 05abf217ba3238fae5c7ffea27b006ba MD5 · raw file
- /*
- *
- * Copyright (c) 2004
- * 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 basic_regex_creator.cpp
- * VERSION see <boost/version.hpp>
- * DESCRIPTION: Declares template class basic_regex_creator which fills in
- * the data members of a regex_data object.
- */
- #ifndef BOOST_REGEX_V4_PROTECTED_CALL_HPP
- #define BOOST_REGEX_V4_PROTECTED_CALL_HPP
- #ifdef BOOST_MSVC
- #pragma warning(push)
- #pragma warning(disable: 4103)
- #endif
- #ifdef BOOST_HAS_ABI_HEADERS
- # include BOOST_ABI_PREFIX
- #endif
- #ifdef BOOST_MSVC
- #pragma warning(pop)
- #endif
- namespace boost{
- namespace re_detail{
- class BOOST_REGEX_DECL abstract_protected_call
- {
- public:
- bool BOOST_REGEX_CALL execute()const;
- // this stops gcc-4 from complaining:
- virtual ~abstract_protected_call(){}
- private:
- virtual bool call()const = 0;
- };
- template <class T>
- class concrete_protected_call
- : public abstract_protected_call
- {
- public:
- typedef bool (T::*proc_type)();
- concrete_protected_call(T* o, proc_type p)
- : obj(o), proc(p) {}
- private:
- virtual bool call()const;
- T* obj;
- proc_type proc;
- };
- template <class T>
- bool concrete_protected_call<T>::call()const
- {
- return (obj->*proc)();
- }
- }
- } // namespace boost
- #ifdef BOOST_MSVC
- #pragma warning(push)
- #pragma warning(disable: 4103)
- #endif
- #ifdef BOOST_HAS_ABI_HEADERS
- # include BOOST_ABI_SUFFIX
- #endif
- #ifdef BOOST_MSVC
- #pragma warning(pop)
- #endif
- #endif