add common fwd header

This commit is contained in:
2019-05-31 06:29:28 +07:00
parent d906bf57e0
commit 5b67609aab
5 changed files with 56 additions and 54 deletions

View File

@@ -0,0 +1,44 @@
/*******************************************************************************
* This file is part of the "https://github.com/blackmatov/flat.hpp"
* For conditions of distribution and use, see copyright notice in LICENSE.md
* Copyright (C) 2019, by Matvey Cherevko (blackmatov@gmail.com)
******************************************************************************/
#pragma once
#include <vector>
#include <cassert>
#include <utility>
#include <algorithm>
#include <functional>
#include <type_traits>
#include <initializer_list>
#include "detail/eq_compare.hpp"
#include "detail/pair_compare.hpp"
#include "detail/is_transparent.hpp"
namespace flat_hpp
{
template < typename Key
, typename Compare = std::less<Key>
, typename Container = std::vector<Key> >
class flat_set;
template < typename Key
, typename Compare = std::less<Key>
, typename Container = std::vector<Key> >
class flat_multiset;
template < typename Key
, typename Value
, typename Compare = std::less<Key>
, typename Container = std::vector<std::pair<Key, Value>> >
class flat_map;
template < typename Key
, typename Value
, typename Compare = std::less<Key>
, typename Container = std::vector<std::pair<Key, Value>> >
class flat_multimap;
}

View File

@@ -6,25 +6,14 @@
#pragma once
#include <vector>
#include <memory>
#include <utility>
#include <iterator>
#include <algorithm>
#include <functional>
#include <type_traits>
#include <initializer_list>
#include "detail/eq_compare.hpp"
#include "detail/pair_compare.hpp"
#include "detail/is_transparent.hpp"
#include "flat_fwd.hpp"
namespace flat_hpp
{
template < typename Key
, typename Value
, typename Compare = std::less<Key>
, typename Container = std::vector<std::pair<Key, Value>> >
, typename Compare
, typename Container >
class flat_map
: private detail::pair_compare<
typename Container::value_type,

View File

@@ -6,25 +6,14 @@
#pragma once
#include <vector>
#include <memory>
#include <utility>
#include <iterator>
#include <algorithm>
#include <functional>
#include <type_traits>
#include <initializer_list>
#include "detail/eq_compare.hpp"
#include "detail/pair_compare.hpp"
#include "detail/is_transparent.hpp"
#include "flat_fwd.hpp"
namespace flat_hpp
{
template < typename Key
, typename Value
, typename Compare = std::less<Key>
, typename Container = std::vector<std::pair<Key, Value>> >
, typename Compare
, typename Container >
class flat_multimap
: private detail::pair_compare<
typename Container::value_type,

View File

@@ -6,23 +6,13 @@
#pragma once
#include <vector>
#include <memory>
#include <utility>
#include <iterator>
#include <algorithm>
#include <functional>
#include <type_traits>
#include <initializer_list>
#include "detail/eq_compare.hpp"
#include "detail/is_transparent.hpp"
#include "flat_fwd.hpp"
namespace flat_hpp
{
template < typename Key
, typename Compare = std::less<Key>
, typename Container = std::vector<Key> >
, typename Compare
, typename Container >
class flat_multiset : private Compare {
using base_type = Compare;
public:

View File

@@ -6,23 +6,13 @@
#pragma once
#include <vector>
#include <memory>
#include <utility>
#include <iterator>
#include <algorithm>
#include <functional>
#include <type_traits>
#include <initializer_list>
#include "detail/eq_compare.hpp"
#include "detail/is_transparent.hpp"
#include "flat_fwd.hpp"
namespace flat_hpp
{
template < typename Key
, typename Compare = std::less<Key>
, typename Container = std::vector<Key> >
, typename Compare
, typename Container >
class flat_set : private Compare {
using base_type = Compare;
public: