check_equal_containers.hpp
来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 75 行
HPP
75 行
////////////////////////////////////////////////////////////////////////////////// (C) Copyright Ion Gaztanaga 2006. 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/interprocess for documentation.////////////////////////////////////////////////////////////////////////////////#ifndef BOOST_INTERPROCESS_TEST_CHECK_EQUAL_CONTAINERS_HPP#define BOOST_INTERPROCESS_TEST_CHECK_EQUAL_CONTAINERS_HPP#include <boost/interprocess/detail/config_begin.hpp>#include <functional>#include <iostream>#include <algorithm>namespace boost{namespace interprocess{namespace test{//Function to check if both containers are equaltemplate<class MyShmCont ,class MyStdCont>bool CheckEqualContainers(MyShmCont *shmcont, MyStdCont *stdcont){ if(shmcont->size() != stdcont->size()) return false; typedef typename MyShmCont::value_type value_type; typename MyShmCont::iterator itshm(shmcont->begin()), itshmend(shmcont->end()); typename MyStdCont::iterator itstd(stdcont->begin()); if((typename MyStdCont::size_type)std::distance(itshm, itshmend) != shmcont->size()){ return false; } for(; itshm != itshmend; ++itshm, ++itstd){ value_type val(*itstd); const value_type &v = *itshm; if(v != val) return false; } return true;}template<class MyShmCont ,class MyStdCont>bool CheckEqualPairContainers(MyShmCont *shmcont, MyStdCont *stdcont){ if(shmcont->size() != stdcont->size()) return false; typedef typename MyShmCont::key_type key_type; typedef typename MyShmCont::mapped_type mapped_type; typename MyShmCont::iterator itshm(shmcont->begin()), itshmend(shmcont->end()); typename MyStdCont::iterator itstd(stdcont->begin()); for(; itshm != itshmend; ++itshm, ++itstd){ if(itshm->first != key_type(itstd->first)) return false; if(itshm->second != mapped_type(itstd->second)) return false; } return true;}} //namespace test{} //namespace interprocess{} //namespace boost{#include <boost/interprocess/detail/config_end.hpp>#endif //#ifndef BOOST_INTERPROCESS_TEST_CHECK_EQUAL_CONTAINERS_HPP
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?