]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/core/doc/noncopyable.qbk
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / core / doc / noncopyable.qbk
CommitLineData
7c673cae
FG
1[/
2 Copyright 1999-2003 Beman Dawes
3 Copyright 2014 Peter Dimov
4
5 Distributed under the Boost Software License, Version 1.0.
6
7 See accompanying file LICENSE_1_0.txt
8 or copy at http://boost.org/LICENSE_1_0.txt
9]
10
11[section:noncopyable noncopyable]
12
13[simplesect Authors]
14
15* Dave Abrahams
16
17[endsimplesect]
18
19[section Header <boost/core/noncopyable.hpp>]
20
21The header `<boost/noncopyable.hpp>` defines the class
22`boost::noncopyable`. It is intended to be used as a private
23base. `boost::noncopyable` has private (under C++03) or
24deleted (under C++11) copy constructor and a copy assignment
25operator and can't be copied or assigned; a class that derives
26from it inherits these properties.
27
28`boost::noncopyable` was originally contributed by Dave
29Abrahams.
30
31[section Synopsis]
32
33``
34namespace boost
35{
36 class noncopyable;
37}
38``
39
40[endsect]
41
42[section Example]
43
44``
45#include <boost/core/noncopyable.hpp>
46
47class X: private boost::noncopyable
48{
49};
50``
51
52[endsect]
53
54[section Rationale]
55
56Class noncopyable has protected constructor and destructor members to emphasize
57that it is to be used only as a base class. Dave Abrahams notes concern about
58the effect on compiler optimization of adding (even trivial inline) destructor
59declarations. He says:
60
61["Probably this concern is misplaced, because `noncopyable` will be used mostly
62for classes which own resources and thus have non-trivial destruction semantics.]
63
64With C++2011, using an optimized and trivial constructor and similar destructor
65can be enforced by declaring both and marking them `default`. This is done in
66the current implementation.
67
68[endsect]
69
70[endsect]
71
72[endsect]