Subversion
svnxx
detail
noncopyable.hpp
Go to the documentation of this file.
1
/**
2
* @file svnxx/detail/noncopyable.hpp
3
* @copyright
4
* ====================================================================
5
* Licensed to the Apache Software Foundation (ASF) under one
6
* or more contributor license agreements. See the NOTICE file
7
* distributed with this work for additional information
8
* regarding copyright ownership. The ASF licenses this file
9
* to you under the Apache License, Version 2.0 (the
10
* "License"); you may not use this file except in compliance
11
* with the License. You may obtain a copy of the License at
12
*
13
* http://www.apache.org/licenses/LICENSE-2.0
14
*
15
* Unless required by applicable law or agreed to in writing,
16
* software distributed under the License is distributed on an
17
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18
* KIND, either express or implied. See the License for the
19
* specific language governing permissions and limitations
20
* under the License.
21
* ====================================================================
22
* @endcopyright
23
*/
24
25
#ifndef SVNXX_DETAIL_NONCOPYABLE_HPP
26
#define SVNXX_DETAIL_NONCOPYABLE_HPP
27
28
namespace
apache {
29
namespace
subversion {
30
namespace
svnxx {
31
namespace
detail {
32
33
namespace
noncopyable_ {
34
/**
35
* @ingroup svnxx_detail
36
* @brief Base class for non-copyable objects.
37
*
38
* Objects of classes derived from @c noncopyable cannot be copied,
39
* but can used as rvalue references and with <tt>std::move</tt>.
40
*
41
* @note Use @e private inheritance to avoid polymorphism traps!
42
*/
43
class
noncopyable
44
{
45
protected
:
46
constexpr
noncopyable
() =
default
;
47
~
noncopyable
() =
default
;
48
private
:
49
noncopyable
(
const
noncopyable
&) =
delete
;
50
noncopyable
& operator=(
const
noncopyable
&) =
delete
;
51
};
52
}
// namespace noncopyable_
53
54
using
noncopyable
=
noncopyable_::noncopyable
;
55
56
}
// namespace detail
57
}
// namespace svnxx
58
}
// namespace subversion
59
}
// namespace apache
60
61
#endif // SVNXX_DETAIL_NONCOPYABLE_HPP
apache::subversion::svnxx::detail::noncopyable_::noncopyable
Base class for non-copyable objects.
Definition:
noncopyable.hpp:43
Generated by
1.8.17