cppreference.com
- (- ());
|
(1) | ||||||||
- (- ()) -
|
(2) | ||||||||
- () = default;
|
(3) | ( C++11) | |||||||
- (- ()) = delete;
|
(4) | ( C++11) | |||||||
- ::- (- ()) -
|
(5) | ||||||||
- ::- () = default;
|
(6) | ( C++11) | |||||||
| - | , | |
| - | -, ( ) ( C++11) | |
| - |
1) .
2-4) .
3) .
4) .
5,6) ( (1)).
6) .
, , inline public .
|
, , , , |
( C++11) |
( ) , ( C++17) noexcept ( C++17).
( C++11) ( C++11), ( ) , odr ( C++11), , . . , , , .
|
constexpr ( C++23)constexpr ( C++23), , , , |
( C++11) |
( C++11) T ( C++11) ( C++11), :
M, ( C++11) ,- :
|
( C++11) |
- ,
M
- ,
- , , .
- ,
|
, |
( C++11) |
T (.. ), :
- (.. ).
T-.T.
| ( C++11) |
-
T. - ( ) .
, . , C ( POD), .
|
, , . |
( C++11) |
|
, . |
( C++11) ( C++20) |
|
, |
( C++20) |
struct A
{
int x;
A(int x = 1): x(x) {} //
};
struct B: A
{
// B::B() i , A::A()
};
struct C
{
A a;
// C::C() , A::A()
};
struct D: A
{
D(int y): A(y) {}
// D::D() ,
};
struct E: A
{
E(int y): A(y) {}
E() = default; // , A::A()
};
struct F
{
int& ref; //
const int c; //
// F::F()
};
// ( ,
// )
//
struct G
{
G(const G&) {}
// G::G()
};
struct H
{
H(const H&) = delete;
// H::H()
};
struct I
{
I(const I&) = default;
// I::I()
};
int main()
{
A a;
B b;
C c;
// D d; //
E e;
// F f; //
// G g; //
// H h; //
// I i; //
}
C++:
| CWG 1353 | C++98 | , , | |
| CWG 2084 | C++11 | , |
|