C ++ 17 N4659 standart taslağı
Hızlı bir çapraz standart referans için, aşağıdaki cppreference girişlerinin "Örtük olarak bildirilmiş" bölümlerine bakın:
Aynı bilgiler elbette standarttan da elde edilebilir. Örneğin, C ++ 17 N4659 standart taslağında :
15.8.1 "Oluşturucuları kopyala / taşı", kopya oluşturucu için şunu söylüyor:
6 Sınıf tanımı bir kopya oluşturucuyu açıkça bildirmezse, açık olmayan bir tanım örtük olarak bildirilir. Sınıf tanımı bir taşıma yapıcısı veya taşıma atama operatörü bildirirse, örtük olarak bildirilen kopya yapıcısı silinmiş olarak tanımlanır; aksi takdirde temerrüde düşmüş olarak tanımlanır (11.4). Sınıfın kullanıcı tarafından bildirilen bir kopya atama operatörü veya kullanıcı tarafından bildirilen bir yıkıcı varsa, ikinci durum kullanımdan kaldırılır.
ve hareket oluşturucu için:
8 Bir X sınıfının tanımı açıkça bir hareket yapıcısı bildirmiyorsa, açık olmayan bir tanım, ancak ve ancak
(8.1) - X, kullanıcı tarafından beyan edilen bir kopya oluşturucusuna sahip değil,
(8.2) - X'in kullanıcı tarafından beyan edilen kopya atama operatörünün olmaması,
(8.3) - X, kullanıcı tanımlı bir hareket atama operatörüne sahip değildir ve
(8.4) - X'in kullanıcı tarafından beyan edilen bir yıkıcısı yoktur.
15.8.2 "Atama işleci kopyala / taşı", kopyalama ataması için diyor:
2 Sınıf tanımı bir kopya atama işlecini açık bir şekilde bildirmezse, biri örtük olarak bildirilir. Sınıf tanımı bir taşıma yapıcısı veya taşıma atama operatörü bildirirse, örtük olarak bildirilen kopya atama operatörü silinmiş olarak tanımlanır; aksi takdirde temerrüde düşmüş olarak tanımlanır (11.4). Sınıfın kullanıcı tarafından bildirilen bir kopya yapıcısı veya kullanıcı tarafından bildirilen bir yıkıcıya sahip olması durumunda, ikinci durum kullanımdan kaldırılır.
ve taşıma ataması için:
4 Bir X sınıfının tanımı açıkça bir hareket atama operatörü bildirmiyorsa, biri örtülü olarak varsayılan olarak ilan edilecektir, ancak ve ancak
- (4.1) - X, kullanıcı tarafından beyan edilen bir kopya oluşturucusuna sahip değil,
- (4.2) - X, kullanıcı tanımlı bir hareket yapıcısına sahip değil,
- (4.3) - X, kullanıcı tarafından beyan edilen bir kopya atama operatörüne sahip değildir ve
- (4.4) - X'in kullanıcı tanımlı bir yıkıcısı yoktur.
15.4 "Destructors", yıkıcılar için şunu söylüyor:
4 Bir sınıfın kullanıcı tanımlı bir yıkıcısı yoksa, bir yıkıcı örtük olarak varsayılan olarak bildirilir (11.4). Örtük olarak bildirilmiş bir yıkıcı, sınıfının bir satır içi public üyesidir.