1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
// file : libbutl/curl.ixx -*- C++ -*-
// license : MIT; see accompanying LICENSE file
#include <cstddef> // size_t
#include <utility> // forward()
#include <exception> // invalid_argument
namespace butl
{
template <typename I,
typename O,
typename E,
typename... A>
inline curl::
curl (I&& in,
O&& out,
E&& err,
method_type m,
flags fs,
const std::string& url,
A&&... options)
: curl ([] (const char* [], std::size_t) {},
std::forward<I> (in),
std::forward<O> (out),
std::forward<E> (err),
m,
fs,
url,
std::forward<A> (options)...)
{
}
template <typename C,
typename I,
typename O,
typename E,
typename... A>
inline curl::
curl (const C& cmdc,
I&& in,
O&& out,
E&& err,
method_type m,
const std::string& url,
A&&... options)
: curl (cmdc,
std::forward<I> (in),
std::forward<O> (out),
std::forward<E> (err),
m,
flags::none,
url,
std::forward<A> (options)...)
{
}
template <typename I,
typename O,
typename E,
typename... A>
inline curl::
curl (I&& in,
O&& out,
E&& err,
method_type m,
const std::string& url,
A&&... options)
: curl (std::forward<I> (in),
std::forward<O> (out),
std::forward<E> (err),
m,
flags::none,
url,
std::forward<A> (options)...)
{
}
inline curl::flags
operator&= (curl::flags& x, curl::flags y)
{
return x = static_cast<curl::flags> (static_cast<std::uint16_t> (x) &
static_cast<std::uint16_t> (y));
}
inline curl::flags
operator|= (curl::flags& x, curl::flags y)
{
return x = static_cast<curl::flags> (static_cast<std::uint16_t> (x) |
static_cast<std::uint16_t> (y));
}
inline curl::flags
operator& (curl::flags x, curl::flags y)
{
return x &= y;
}
inline curl::flags
operator| (curl::flags x, curl::flags y)
{
return x |= y;
}
}
|