• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright 2016 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/poly_collection for library home page.
7  */
8 
9 #ifndef BOOST_POLY_COLLECTION_FUNCTION_COLLECTION_FWD_HPP
10 #define BOOST_POLY_COLLECTION_FUNCTION_COLLECTION_FWD_HPP
11 
12 #if defined(_MSC_VER)
13 #pragma once
14 #endif
15 
16 #include <memory>
17 
18 namespace boost{
19 
20 namespace poly_collection{
21 
22 namespace detail{
23 template<typename Signature> struct function_model;
24 }
25 
26 template<typename Signature>
27 using function_collection_value_type=
28   typename detail::function_model<Signature>::value_type;
29 
30 template<
31   typename Signature,
32   typename Allocator=std::allocator<function_collection_value_type<Signature>>
33 >
34 class function_collection;
35 
36 template<typename Signature,typename Allocator>
37 bool operator==(
38   const function_collection<Signature,Allocator>& x,
39   const function_collection<Signature,Allocator>& y);
40 
41 template<typename Signature,typename Allocator>
42 bool operator!=(
43   const function_collection<Signature,Allocator>& x,
44   const function_collection<Signature,Allocator>& y);
45 
46 template<typename Signature,typename Allocator>
47 void swap(
48   function_collection<Signature,Allocator>& x,
49   function_collection<Signature,Allocator>& y);
50 
51 } /* namespace poly_collection */
52 
53 using poly_collection::function_collection;
54 
55 } /* namespace boost */
56 
57 #endif
58