LCOV - code coverage report
Current view: top level - usr/include/boost/multi_index - ordered_index.hpp (source / functions) Hit Total Coverage
Test: ROSE Lines: 0 5 0.0 %
Date: 2022-12-08 13:48:47 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* Copyright 2003-2015 Joaquin M Lopez Munoz.
       2             :  * Distributed under the Boost Software License, Version 1.0.
       3             :  * (See accompanying file LICENSE_1_0.txt or copy at
       4             :  * http://www.boost.org/LICENSE_1_0.txt)
       5             :  *
       6             :  * See http://www.boost.org/libs/multi_index for library home page.
       7             :  */
       8             : 
       9             : #ifndef BOOST_MULTI_INDEX_ORDERED_INDEX_HPP
      10             : #define BOOST_MULTI_INDEX_ORDERED_INDEX_HPP
      11             : 
      12             : #if defined(_MSC_VER)
      13             : #pragma once
      14             : #endif
      15             : 
      16             : #include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */
      17             : #include <boost/multi_index/detail/ord_index_impl.hpp>
      18             : #include <boost/multi_index/ordered_index_fwd.hpp>
      19             : 
      20             : namespace boost{
      21             : 
      22             : namespace multi_index{
      23             : 
      24             : namespace detail{
      25             : 
      26             : /* no augment policy for plain ordered indices */
      27             : 
      28             : struct null_augment_policy
      29             : {
      30             :   template<typename OrderedIndexImpl>
      31             :   struct augmented_interface
      32             :   {
      33             :     typedef OrderedIndexImpl type;
      34             :   };
      35             : 
      36             :   template<typename OrderedIndexNodeImpl>
      37             :   struct augmented_node
      38             :   {
      39             :     typedef OrderedIndexNodeImpl type;
      40             :   };
      41             : 
      42           0 :   template<typename Pointer> static void add(Pointer,Pointer){}
      43           0 :   template<typename Pointer> static void remove(Pointer,Pointer){}
      44           0 :   template<typename Pointer> static void copy(Pointer,Pointer){}
      45           0 :   template<typename Pointer> static void rotate_left(Pointer,Pointer){}
      46           0 :   template<typename Pointer> static void rotate_right(Pointer,Pointer){}
      47             : 
      48             : #if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING)
      49             :   /* invariant stuff */
      50             : 
      51             :   template<typename Pointer> static bool invariant(Pointer){return true;}
      52             : 
      53             : #endif
      54             : };
      55             : 
      56             : } /* namespace multi_index::detail */
      57             : 
      58             : /* ordered_index specifiers */
      59             : 
      60             : template<typename Arg1,typename Arg2,typename Arg3>
      61             : struct ordered_unique
      62             : {
      63             :   typedef typename detail::ordered_index_args<
      64             :     Arg1,Arg2,Arg3>                                index_args;
      65             :   typedef typename index_args::tag_list_type::type tag_list_type;
      66             :   typedef typename index_args::key_from_value_type key_from_value_type;
      67             :   typedef typename index_args::compare_type        compare_type;
      68             : 
      69             :   template<typename Super>
      70             :   struct node_class
      71             :   {
      72             :     typedef detail::ordered_index_node<detail::null_augment_policy,Super> type;
      73             :   };
      74             : 
      75             :   template<typename SuperMeta>
      76             :   struct index_class
      77             :   {
      78             :     typedef detail::ordered_index<
      79             :       key_from_value_type,compare_type,
      80             :       SuperMeta,tag_list_type,detail::ordered_unique_tag,
      81             :       detail::null_augment_policy>                        type;
      82             :   };
      83             : };
      84             : 
      85             : template<typename Arg1,typename Arg2,typename Arg3>
      86             : struct ordered_non_unique
      87             : {
      88             :   typedef detail::ordered_index_args<
      89             :     Arg1,Arg2,Arg3>                                index_args;
      90             :   typedef typename index_args::tag_list_type::type tag_list_type;
      91             :   typedef typename index_args::key_from_value_type key_from_value_type;
      92             :   typedef typename index_args::compare_type        compare_type;
      93             : 
      94             :   template<typename Super>
      95             :   struct node_class
      96             :   {
      97             :     typedef detail::ordered_index_node<detail::null_augment_policy,Super> type;
      98             :   };
      99             : 
     100             :   template<typename SuperMeta>
     101             :   struct index_class
     102             :   {
     103             :     typedef detail::ordered_index<
     104             :       key_from_value_type,compare_type,
     105             :       SuperMeta,tag_list_type,detail::ordered_non_unique_tag,
     106             :       detail::null_augment_policy>                            type;
     107             :   };
     108             : };
     109             : 
     110             : } /* namespace multi_index */
     111             : 
     112             : } /* namespace boost */
     113             : 
     114             : #endif

Generated by: LCOV version 1.14