Statistics
| Revision:

root / tmp / org.txm.statsengine.r.core.win32 / res / win32 / library / BH / include / boost / asio / placeholders.hpp @ 2486

History | View | Annotate | Download (3.2 kB)

1
//
2
// placeholders.hpp
3
// ~~~~~~~~~~~~~~~~
4
//
5
// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
//
7
// Distributed under the Boost Software License, Version 1.0. (See accompanying
8
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
//
10

    
11
#ifndef BOOST_ASIO_PLACEHOLDERS_HPP
12
#define BOOST_ASIO_PLACEHOLDERS_HPP
13

    
14
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
# pragma once
16
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17

    
18
#include <boost/asio/detail/config.hpp>
19

    
20
#if defined(BOOST_ASIO_HAS_BOOST_BIND)
21
# include <boost/bind/arg.hpp>
22
#endif // defined(BOOST_ASIO_HAS_BOOST_BIND)
23

    
24
#include <boost/asio/detail/push_options.hpp>
25

    
26
namespace boost {
27
namespace asio {
28
namespace placeholders {
29

    
30
#if defined(GENERATING_DOCUMENTATION)
31

    
32
/// An argument placeholder, for use with boost::bind(), that corresponds to
33
/// the error argument of a handler for any of the asynchronous functions.
34
unspecified error;
35

    
36
/// An argument placeholder, for use with boost::bind(), that corresponds to
37
/// the bytes_transferred argument of a handler for asynchronous functions such
38
/// as boost::asio::basic_stream_socket::async_write_some or
39
/// boost::asio::async_write.
40
unspecified bytes_transferred;
41

    
42
/// An argument placeholder, for use with boost::bind(), that corresponds to
43
/// the iterator argument of a handler for asynchronous functions such as
44
/// boost::asio::basic_resolver::async_resolve.
45
unspecified iterator;
46

    
47
/// An argument placeholder, for use with boost::bind(), that corresponds to
48
/// the signal_number argument of a handler for asynchronous functions such as
49
/// boost::asio::signal_set::async_wait.
50
unspecified signal_number;
51

    
52
#elif defined(BOOST_ASIO_HAS_BOOST_BIND)
53
# if defined(__BORLANDC__) || defined(__GNUC__)
54

    
55
inline boost::arg<1> error()
56
{
57
  return boost::arg<1>();
58
}
59

    
60
inline boost::arg<2> bytes_transferred()
61
{
62
  return boost::arg<2>();
63
}
64

    
65
inline boost::arg<2> iterator()
66
{
67
  return boost::arg<2>();
68
}
69

    
70
inline boost::arg<2> signal_number()
71
{
72
  return boost::arg<2>();
73
}
74

    
75
# else
76

    
77
namespace detail
78
{
79
  template <int Number>
80
  struct placeholder
81
  {
82
    static boost::arg<Number>& get()
83
    {
84
      static boost::arg<Number> result;
85
      return result;
86
    }
87
  };
88
}
89

    
90
#  if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC < 1400)
91

    
92
static boost::arg<1>& error
93
  = boost::asio::placeholders::detail::placeholder<1>::get();
94
static boost::arg<2>& bytes_transferred
95
  = boost::asio::placeholders::detail::placeholder<2>::get();
96
static boost::arg<2>& iterator
97
  = boost::asio::placeholders::detail::placeholder<2>::get();
98
static boost::arg<2>& signal_number
99
  = boost::asio::placeholders::detail::placeholder<2>::get();
100

    
101
#  else
102

    
103
namespace
104
{
105
  boost::arg<1>& error
106
    = boost::asio::placeholders::detail::placeholder<1>::get();
107
  boost::arg<2>& bytes_transferred
108
    = boost::asio::placeholders::detail::placeholder<2>::get();
109
  boost::arg<2>& iterator
110
    = boost::asio::placeholders::detail::placeholder<2>::get();
111
  boost::arg<2>& signal_number
112
    = boost::asio::placeholders::detail::placeholder<2>::get();
113
} // namespace
114

    
115
#  endif
116
# endif
117
#endif
118

    
119
} // namespace placeholders
120
} // namespace asio
121
} // namespace boost
122

    
123
#include <boost/asio/detail/pop_options.hpp>
124

    
125
#endif // BOOST_ASIO_PLACEHOLDERS_HPP