Constexpr neden statik olmalıdır?
Nov 16 2020
Okuduktan sonra bu ve bu hala ifadelerin bu tür hakkında karıştı hissediyorum:
static constexpr int = 0;
AFAIK, C ++ ile:
statictüm yürütme boyunca yaşam boyu bellek adresi ve eşzamanlı iş parçacıklarıyla güvenli başlatma sağlarconstexprr değeri olarak zaman-derleme değerlendirmesini sağlar, yani bellek adresi olmayacaktır
Bana çelişkili görünüyorlar. staticdeğişkenin uzun süreli bir hafıza adresine sahip constexprolmasını sağlarken , tersi varsayımı sağlar. Şaşırtıcı bir şekilde, ilk bağlantıdaki tartışma bundan bahsediyor:
constexpr int x = 3;
const int* p = &x;
Bir r değeri olup xolmadığının bellek adresini nasıl elde edebiliriz ?
Bunu kimse açıklayabilir mi? Şimdiden teşekkürler
Yanıtlar
1 MSalters Nov 16 2020 at 17:10
staticbir dizi anlamı vardır. Sınıflarda (yorumunuza göre), üyenin sınıfla ilişkili olduğu ve o sınıfın belirli bir örneği (nesnesi) olmadığı anlamına gelir.
A için constexprbu çok mantıklı. Bu genellikle derleyici tarafından bilinen bir değerle başlatılır ve ctor argümanlarından değil.
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı