unbounded.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 84 行

HPP
84
字号
/* Copyright 2003-2008 Joaquin M Lopez Munoz. * Distributed under 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) * * See http://www.boost.org/libs/multi_index for library home page. */#ifndef BOOST_MULTI_INDEX_DETAIL_UNBOUNDED_HPP#define BOOST_MULTI_INDEX_DETAIL_UNBOUNDED_HPP#if defined(_MSC_VER)&&(_MSC_VER>=1200)#pragma once#endif#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */#include <boost/detail/workaround.hpp>namespace boost{namespace multi_index{/* dummy type and variable for use in ordered_index::range() */#if BOOST_WORKAROUND(BOOST_MSVC,<1300)/* The default branch actually works for MSVC 6.0, but seems like * this implementation of unbounded improves the performance of ordered * indices! This behavior is hard to explain and probably a test artifact, * but it does not hurt to have the workaround anyway. */namespace detail{struct unbounded_type{};}namespace{static detail::unbounded_type  unbounded_obj=detail::unbounded_type();static detail::unbounded_type& unbounded=unbounded_obj;} /* unnamed */#else/* ODR-abiding technique shown at the example attached to * http://lists.boost.org/Archives/boost/2006/07/108355.php */namespace detail{class unbounded_helper;}detail::unbounded_helper unbounded(detail::unbounded_helper);namespace detail{class unbounded_helper{  unbounded_helper(){}  unbounded_helper(const unbounded_helper&){}  friend unbounded_helper multi_index::unbounded(unbounded_helper);};typedef unbounded_helper (*unbounded_type)(unbounded_helper);} /* namespace multi_index::detail */inline detail::unbounded_helper unbounded(detail::unbounded_helper){  return detail::unbounded_helper();}#endif/* tags used in the implementation of range */namespace detail{struct none_unbounded_tag{};struct lower_unbounded_tag{};struct upper_unbounded_tag{};struct both_unbounded_tag{};} /* namespace multi_index::detail */} /* namespace multi_index */} /* namespace boost */#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?