Utanç verici C ile ilgili soru inş
this answer eleştirilerime constness konular hakkında düşünmemi ve sıralama var. Biraz oynadım ve bu kod aslında benim sorunları azalır:
#include <vector>
int main() {
std::vector <const int> v;
}
derlenir değil - sabit in bir vektör oluşturabilirsiniz. Belli ki, bu anlamalıydım (ve entelektüel yaptım), ama asla böyle bir şey daha önce oluşturmak için ihtiyacım olmadı. Ancak, benim için faydalı bir yapı gibi görünüyor, ve eğer orada herhangi bir şekilde yuvarlak bu sorun ise merak ediyorumBir vektör (ya da her Neyse) birşeyler eklemek istiyorum, ama önce bir kez değiştirilmelidir.
Muhtemelen bu utanç verici basit bir çözüm var, ama daha önce hiç düşünmeyeceğim bir şey.
Düzenleme:Muhtemelen sıralama (soru soran zorluklar için this bakın bu konuda başka bir soru daha sormama izin) sözü olmalıdır. Gerçek taban kullanmak benim durumumda böyle bir şey
vector <const int> v; // ok (i.e. I want it to be OK)
v.push_back( 42 ); // ok
int n = v[0]; // ok
v[0] = 1; // not allowed
CEVAP
Peki, C 0x içinde
C 03, paragraf var 23.1[lib.kaplar.şartları] diyor ki/3,
Nesneleri bu bileşenler içinde saklı Tipi
CopyConstructible
türleri (20.1.3) gereksinimleri veAssignable
tür ek gereksinimleri karşılaması gerekir.
Bu şu anda std::vector
türü bir değişken olarak const int
kullanarak engelliyor.
Ancak, C 0, bu fıkra eksik, onun yerine T
gereken Destructible
ve ek gereksinimler T
belirtilen her ifade, örneğin v = u
std::vector
geçerli T
MoveConstructible
MoveAssignable
.
Ben bu gereksinimleri doğru yorumlarsanız, sadece işlevselliği bazı istedin sanırım) eksik olacak std::vector<const int>
, oluşturmak mümkün olmalıdır. Kurucu kullanımına bir çift geçirerek doldurun. T
açık gereksinimleri bulmak için başarısız oldum gerçi emplace_back()
de çalışması gerektiğini düşünüyorum.
Hala vektör yerinde olsa sıralamak mümkün olmayacaktır.
Django model nesneleri ilgili tüm...
C standart iostreams için düşük perfor...
Google Haritalar ile ilgili sorunlar v...
İki ActiveRecord::birleştirin İlgili n...
Swift değişken ile " dekorasyon;?&...