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.
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'