1 /* 2 * Copyright Andrey Semashev 2007 - 2015. 3 * Distributed under the Boost Software License, Version 1.0. 4 * (See accompanying file LICENSE_1_0.txt or copy at 5 * http://www.boost.org/LICENSE_1_0.txt) 6 */ 7 /*! 8 * \file value_extraction_fwd.hpp 9 * \author Andrey Semashev 10 * \date 01.03.2008 11 * 12 * The header contains forward declaration of tools for extracting attribute values 13 * from the view. 14 */ 15 16 #ifndef BOOST_LOG_ATTRIBUTES_VALUE_EXTRACTION_FWD_HPP_INCLUDED_ 17 #define BOOST_LOG_ATTRIBUTES_VALUE_EXTRACTION_FWD_HPP_INCLUDED_ 18 19 #include <boost/log/detail/config.hpp> 20 #include <boost/log/attributes/fallback_policy_fwd.hpp> 21 22 #ifdef BOOST_HAS_PRAGMA_ONCE 23 #pragma once 24 #endif 25 26 namespace boost { 27 28 BOOST_LOG_OPEN_NAMESPACE 29 30 namespace result_of { 31 32 /*! 33 * \brief A metafunction that allows to acquire the result of the value extraction 34 */ 35 template< typename T, typename DefaultT = T, typename TagT = void > 36 struct extract_or_default; 37 38 /*! 39 * \brief A metafunction that allows to acquire the result of the value extraction 40 */ 41 template< typename T, typename TagT = void > 42 struct extract_or_throw; 43 44 /*! 45 * \brief A metafunction that allows to acquire the result of the value extraction 46 */ 47 template< typename T, typename TagT = void > 48 struct extract; 49 50 } // namespace result_of 51 52 /*! 53 * \brief Generic attribute value extractor 54 */ 55 template< typename T, typename FallbackPolicyT = fallback_to_none, typename TagT = void > 56 class value_extractor; 57 58 BOOST_LOG_CLOSE_NAMESPACE // namespace log 59 60 } // namespace boost 61 62 #endif // BOOST_LOG_ATTRIBUTES_VALUE_EXTRACTION_FWD_HPP_INCLUDED_ 63