From cac7bd1b1ecbabe169d13a57503bc4874c180a71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Thu, 3 Jan 2019 01:21:03 +0100 Subject: [PATCH] With movelib's update, test no longer needed. --- test/voidptr_key_test.cpp | 94 --------------------------------------- 1 file changed, 94 deletions(-) delete mode 100644 test/voidptr_key_test.cpp diff --git a/test/voidptr_key_test.cpp b/test/voidptr_key_test.cpp deleted file mode 100644 index c605599..0000000 --- a/test/voidptr_key_test.cpp +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Andrey Semashev 2018. -// -// 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/intrusive for documentation. -// -///////////////////////////////////////////////////////////////////////////// - -#include -#include -#include -#include -#include -#include // std::less - -// The test verifies that the set implementation does not use void* as auxiliary arguments for SFINAE -// in internal functions, which would make overload resolution ambiguous if user's key type is also void*. - -typedef boost::intrusive::set_base_hook< - boost::intrusive::link_mode< boost::intrusive::safe_link >, - boost::intrusive::tag< struct for_set_element_lookup_by_key >, - boost::intrusive::optimize_size< true > -> set_element_hook_t; - -struct set_element : - public set_element_hook_t -{ - struct order_by_key - { - typedef bool result_type; - - result_type operator() (set_element const& left, set_element const& right) const - { - return std::less< void* >()(left.m_key, right.m_key); - } - result_type operator() (void* left, set_element const& right) const - { - return std::less< void* >()(left, right.m_key); - } - result_type operator() (set_element const& left, void* right) const - { - return std::less< void* >()(left.m_key, right); - } - }; - - void* m_key; - - explicit set_element(void* key) : m_key(key) {} - - BOOST_DELETED_FUNCTION(set_element(set_element const&)) - BOOST_DELETED_FUNCTION(set_element& operator=(set_element const&)) -}; - -typedef boost::intrusive::set< - set_element, - boost::intrusive::base_hook< set_element_hook_t >, - boost::intrusive::compare< set_element::order_by_key >, - boost::intrusive::constant_time_size< true > -> set_t; - -void test_set() -{ - int v1 = 0, v2 = 1, v3 = 2; - set_element e1(&v1), e2(&v2), e3(&v3); - - set_t s; - s.insert(e1); - s.insert(e2); - - set_t::iterator it = s.find(e1); - BOOST_TEST(it != s.end() && &*it == &e1); - - it = s.find((void*)&v2, set_element::order_by_key()); - BOOST_TEST(it != s.end() && &*it == &e2); - - it = s.find(e3); - BOOST_TEST(it == s.end()); - - it = s.find((void*)&v3, set_element::order_by_key()); - BOOST_TEST(it == s.end()); - - s.clear(); -} - -int main() -{ - test_set(); - - return boost::report_errors(); -}