«auto» etiketlenmiş sorular

`Auto` anahtar sözcüğü, çıkarılmış bir tür için C ++ 11'de yeniden tasarlanmıştır. Başlatılmış bir değişken bildiriminde bir tür adını değiştirmek için kullanıldığında, değişkene başlatıcıyla aynı tür verilir. Bir dönüş türü olarak kullanıldığında, dönüş türü sondaki dönüş türü olarak belirtilir veya dönüş ifadesinden çıkarılır.


14
C ++ 11 otomatik anahtar kelimesi ile ne kadar çok şey var?
autoC ++ 11 standardında mevcut olan yeni anahtar kelimeyi, bunun için tasarlandığına inandığım karmaşık şablonlu türler için kullanıyorum. Ama aynı zamanda şu gibi şeyler için kullanıyorum: auto foo = std::make_shared<Foo>(); Ve daha şüpheci olanlar: auto foo = bla(); // where bla() return a shared_ptr<Foo> Bu konuda çok fazla tartışma görmedim. …

4
Auto && bize ne anlatıyor?
Eğer kodu okursanız auto&& var = foo(); burada fooherhangi bir işlev tür değerine göre döner T. Sonra vartür değeri referansı bir lvalue olduğunu T. Peki bu ne anlama geliyor var? Bu, kaynaklarını çalmamıza izin verildiği anlamına mı geliyor var? auto&&Kodunuzu okuyucunuza, unique_ptr<>özel sahipliğiniz olduğunu söylemek için geri döndüğünüzde yaptığınız gibi …

2
Decltype'in (auto) bazı kullanımları nelerdir?
На этот вопрос есть ответы на yığın taşması на русском : Конструкция decltype (otomatik) C ++ 14'te decltype(auto)deyim tanıtılır. Genellikle kullanımı, bildirimlerin verilen ifadedeki kuralları kullanmasına izin vermektirautodecltype . Deyimin "iyi" kullanımına ilişkin örnekler aramak için sadece aşağıdaki gibi şeyleri ( Scott Meyers tarafından ), yani bir fonksiyonun dönüş tipi …

7
C ++ otomatik anahtar kelimesi. Neden sihir?
C ++ öğrenmek için kullandığım tüm malzemelerden, autoher zaman hiçbir amaca hizmet etmeyen garip bir depolama süresi belirleyicisi olmuştur. Ama son zamanlarda, kendi başına bir tür adı olarak kullanılan kodla karşılaştım. Merakın dışında denedim ve ne olursa olsun ona ne tür bir şey verdiğimi varsayar! Aniden STL yineleyicileri ve şablon …
145 c++  types  c++11  auto 

14
C ++ 'da otomatik değişkenleri bildirmenin bir dezavantajı var mı?
Görünüşe göre auto, birçok yeni dili takip eden C ++ 11'e eklenmesi oldukça önemli bir özellikti. Python gibi bir dilde olduğu gibi, herhangi bir açık değişken bildirimi görmedim (Python standartlarını kullanarak mümkün olup olmadığından emin değilim). autoDeğişkenleri açıkça belirtmek yerine bildirmek için kullanmanın bir dezavantajı var mı ?


4
Oto'yu neden özel tipte kullanabilirim?
Bir şekilde aşağıdaki kodun derlenip çalıştığına şaşırdım (vc2012 & gcc4.7.2) class Foo { struct Bar { int i; }; public: Bar Baz() { return Bar(); } }; int main() { Foo f; // Foo::Bar b = f.Baz(); // error auto b = f.Baz(); // ok std::cout << b.i; } Bu …

2
işlev başlığında ok operatörü (->)
Aşağıdaki kodla karşılaştım: template <typename T, typename T1> auto compose(T a, T1 b) -> decltype(a + b) { return a+b; } Anlayamadığım bir şey var: Ok operatörünün ( ->) işlev başlığında ne anlama geldiğini nereden öğrenebilirim ? Sanırım tamamen mantıksal olarak, ->operatörün autoçıkarılacak bir türü belirlediğini , ancak bunu açıklığa …
129 c++  c++11  auto  decltype 

7
Neden auto a = 1; C'de derlemek mi?
Kod: int main(void) { auto a=1; return 0; } dosya .c uzantısına sahip olduğunda, MS Visual Studio 2012 derleyicisi tarafından hatasız olarak derlenir. Her zaman .c uzantısını kullandığınızda, derlemenin C ++ 'ya değil C sözdizimine göre olması gerektiğini düşünmüşümdür. Dahası, bildiğim kadarıyla bir tür olmadan otomatik'e yalnızca C ++ ' …
125 c  auto  c11 

6
Lambda kendini geri veriyor: bu yasal mı?
Oldukça yararsız olan bu programı düşünün: #include <iostream> int main(int argc, char* argv[]) { int a = 5; auto it = [&](auto self) { return [&](auto b) { std::cout << (a + b) << std::endl; return self(self); }; }; it(it)(4)(6)(42)(77)(999); } Temel olarak, kendisini döndüren bir lambda yapmaya çalışıyoruz. MSVC …

3
Genel lambda C ++ 14'te nasıl çalışır?
autoC ++ 14 standardında genel lambda nasıl çalışır ( argüman türü olarak anahtar kelime)? Her farklı argüman türü için derleyicinin aynı gövdeye sahip yeni bir işlev oluşturduğu ancak türleri değiştirdiği (derleme zamanı polimorfizmi) veya Java'nın jeneriklerine (tür silme) daha çok benzeyen C ++ şablonlarına mı dayanıyor? Kod örneği: auto glambda …
114 c++  lambda  auto  c++14 

6
Java'da otomatik tür çıkarımı var mı?
autoJava'da C ++ 'da olduğu gibi bir değişken türü var mı? Bir örnek: for ( auto var : object_array) std::cout << var << std::endl; for( auto var : object_array) var.do_something_that_only_this_particular_obj_can_do(); Java'da geliştirilmiş bir for döngüsü olduğunu biliyorum, ancak bir otomatik var mı? Değilse, bunu yapmak için bir hack var mı? …
113 java  c++  auto 

4
Sondaki dönüş türü söz dizimi stili yeni C ++ 11 programları için varsayılan hale gelmeli mi? [kapalı]
Kapalı . Bu soru fikir temelli . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek mi istiyorsunuz? Bu gönderiyi düzenleyerek gerçekler ve alıntılarla cevaplanabilmesi için soruyu güncelleyin . 3 yıl önce kapalı . Bu soruyu geliştirin C ++ 11, yeni bir işlev sözdizimini destekler: auto func_name(int x, int y) -> …

4
C ++ otomatik ve otomatik vs
Yerel değişkenler oluştururken kullanmak doğru mu (const) auto&yoksa auto? Örneğin: SomeClass object; const auto result = object.SomeMethod(); veya const auto& result = object.SomeMethod(); SomeMethod () ilkel olmayan bir değer döndürür - belki başka bir kullanıcı tanımlı tür. Anladığım kadarıyla, const auto& resultSomeMethod () tarafından döndürülen sonuç, döndürülen tür için kopya …
91 c++  auto 

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.