/usr/include/boost/range/detail
NameSizeModeActions
any_iterator.hpp194670644editdlrm
any_iterator_buffer.hpp27360644editdlrm
any_iterator_interface.hpp100950644editdlrm
any_iterator_wrapper.hpp213590644editdlrm
collection_traits.hpp85050644editdlrm
collection_traits_detail.hpp144710644editdlrm
combine_cxx03.hpp23900644editdlrm
combine_cxx11.hpp10480644editdlrm
combine_no_rvalue.hpp24930644editdlrm
combine_rvalue.hpp11830644editdlrm
common.hpp66600644editdlrm
default_constructible_unary_fn.hpp20380644editdlrm
demote_iterator_traversal_tag.hpp54400644editdlrm
difference_type.hpp31620644editdlrm
empty.hpp31710644editdlrm
extract_optional_type.hpp20180644editdlrm
has_member_size.hpp15270644editdlrm
implementation_help.hpp31770644editdlrm
join_iterator.hpp109450644editdlrm
less.hpp4720644editdlrm
microsoft.hpp289280644editdlrm
misc_concept.hpp8220644editdlrm
msvc_has_iterator_workaround.hpp36120644editdlrm
range_return.hpp61820644editdlrm
safe_bool.hpp20670644editdlrm
sfinae.hpp26990644editdlrm
sizer.hpp9460644editdlrm
str_types.hpp8130644editdlrm
Edit: /usr/include/boost/range/detail/empty.hpp (3171B)
// Boost.Range library // // Copyright Thorsten Ottosen 2003-2004. Use, modification and // distribution is 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) // // For more information, see http://www.boost.org/libs/range/ // #ifndef BOOST_RANGE_DETAIL_EMPTY_HPP #define BOOST_RANGE_DETAIL_EMPTY_HPP #include namespace boost { namespace range_detail { template< typename T > struct range_empty; ////////////////////////////////////////////////////////////////////// // default ////////////////////////////////////////////////////////////////////// template<> struct range_empty { template< typename C > static bool fun( C& c ) { return c.empty(); }; }; ////////////////////////////////////////////////////////////////////// // pair ////////////////////////////////////////////////////////////////////// template<> struct range_empty { template< typename P > static bool fun( const P& p ) { return p.first == p.second; } }; ////////////////////////////////////////////////////////////////////// // array ////////////////////////////////////////////////////////////////////// template<> struct range_empty { template< typename T, std::size_t sz > static bool fun( T BOOST_ARRAY_REF[sz] ) { if( boost_range_array == 0 ) return true; return false; } }; ////////////////////////////////////////////////////////////////////// // string ////////////////////////////////////////////////////////////////////// template<> struct range_empty { static bool fun( const char* s ) { return s == 0 || s[0] == 0; } }; template<> struct range_empty { static bool fun( const char* s ) { return s == 0 || s[0] == 0; } }; template<> struct range_empty { static bool fun( const wchar_t* s ) { return s == 0 || s[0] == 0; } }; template<> struct range_empty { static bool fun( const wchar_t* s ) { return s == 0 || s[0] == 0; } }; } // namespace 'range_detail' template< typename C > inline bool empty( const C& c ) { return range_detail::range_empty< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range::type >::fun( c ); } } // namespace 'boost' #endif