«c++» etiketlenmiş sorular

C ++ genel amaçlı bir programlama dilidir. Başlangıçta C'nin bir uzantısı olarak tasarlanmıştır ve benzer bir sözdizimine sahiptir, ancak şimdi tamamen farklı bir dildir. Bir C ++ derleyicisiyle derlenecek kod (sorulacak) ile ilgili sorular için bu etiketi kullanın. Belirli bir standart revizyon [C ++ 11], [C ++ 14], [C ++ 17] veya [C ++ 20] vb. İle ilgili sorular için sürüme özgü bir etiket kullanın.


1
“Daha önce güçlü bir şekilde gerçekleşir” ne anlama geliyor?
"Daha önce kesinlikle olur" ifadesi C ++ taslak standardında birkaç kez kullanılır. Örneğin: Fesih [basic.start.term] / 5 Stad saklama süresi olan bir nesnenin başlatılmasının tamamlanması, std :: atexit çağrısından önce gerçekleşirse (bkz., [Support.start.term]), std :: atexit işlevine yapılan çağrı nesnenin yıkıcısına yapılan çağrıdan önce sıralanır. Stad depolama süresine sahip bir …


2
Değişken sabit için sözde yıkıcı çağırmanın geçerli sözdizimi
Aşağıdaki örnek programı düşünün. #include <iostream> int main() { typedef float T; 0.f.T::~T(); } Bu program tarafından derlenmektedir Microsoft Visual Studio Community 2019. Ama clangve gccbu gibi bir hata sorunu prog.cc:7:5: error: unable to find numeric literal operator 'operator""f.T' 7 | 0.f.T::~T(); | ^~~~~ İfadeyi böyle yazmak için ( 0.f …

2
Boş gösterici argümanı ve imkansız son koşullar ile standart istisnalar oluşturun
Aşağıdaki programı düşünün: #include<stdexcept> #include<iostream> int main() { try { throw std::range_error(nullptr); } catch(const std::range_error&) { std::cout << "Caught!\n"; } } GCC ve Clang ile libstdc ++ çağrı std::terminateve mesaj ile programı iptal terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct null not valid İstisna yapımında libc ++ …

2
Geçici bir borulu menzil işlemine geri gönderebilir miyim?
Varsayalım ki bir generate_my_rangesınıf var range(özellikle, regular). Sonra aşağıdaki kod doğrudur: auto generate_my_range(int some_param) { auto my_transform_op = [](const auto& x){ return do_sth(x); }; return my_custom_rng_gen(some_param) | ranges::views::transform(my_transform_op); } auto cells = generate_my_range(10) | ranges::to<std::vector>; my_custom_rng_gen(some_param)(İlk) boru operatörü tarafından değere göre mi alınır yoksa generate_my_rangekapsamdan ayrıldıktan sonra sarkan bir referansım …
9 c++  range-v3 

2
Hangi isim alanları var ve kurallar neler?
Not: Bu soru hakkında name space, değil namespace. C ++ standardının bazı referansları vardır name space, ancak bunun tanımını görmüyorum. Standartlar, etiketlerin ve makroların farklı ad alanlarında olduğunu söylüyor. Diğer tüm referanslar name spaceşu şekilde C / C ++ uyumluluk bölümünde ( mevcut taslak ): Bu, C ve C ++ …
9 c++  namespaces 

1
Örnek oluşturmak zorunda kalmadan std :: array <T, N> öğelerinin sayısını nasıl alabilirim?
Var std::array&lt;T, N&gt;::size(), ama statik değil, bu yüzden bir örneği gerektirir std::array. (Olup döndürür değeri elde etmek için bir yol var Nbir std::array&lt;T, N&gt;dizinin bir örneğini oluşturmak zorunda kalmadan)? Normal bir dizi için kullanmış olabilirdim sizeof, ama sizeof(std::array&lt;T, N&gt;) == N * sizeof(T)doğru olduğunu garanti edemiyorum.
9 c++  arrays  c++11  sizeof 

1
Ömrü sona eren bir nesnenin üye işlev programına devam etmek UB mi?
Bu soru şu yorumdan kaynaklanıyor: C ++ 20 programları için Lambda ömür boyu açıklama bu örnekle ilgili olarak: auto foo() -&gt; folly::coro::Task&lt;int&gt; { auto task = []() -&gt; folly::coro::Task&lt;int&gt; { co_return 1; }(); return task; } Yani soru, geri dönen koroutinin yürütülmesinin fooUB ile sonuçlanıp sonuçlanmayacağıdır. Bir üye işlevini "çağırma" …

1
Belirsiz Örtülü Nesne Oluşturma
Yana düşük seviyeli nesne manipülasyonu için nesnelerin P0593 Örtülü oluşturulması kabul edilmiştir, nesneler artık oluşturulabilir dolaylı 20 C ++. Özellikle önerisi getirdiği ifade (örneğin belirli operasyonlar verir std::mallocotomatik olarak) belirli tipte nesnelerin ömrünü, sözde oluşturmak ve başlatmak örtük-ömür türleri , eğer böyle nesnelerin tanıtımı için aksi tanımsız davranışı ile bir …

2
Neden C ++, Foo <T> :: Foo (T&&) çağrısında T'yi çıkaramaz?
Aşağıdaki şablon yapısı göz önüne alındığında: template&lt;typename T&gt; struct Foo { Foo(T&amp;&amp;) {} }; Bu derlenir ve Tşu şekilde çıkarılır int: auto f = Foo(2); Ancak bu derlenmez: https://godbolt.org/z/hAA9TE int x = 2; auto f = Foo(x); /* &lt;source&gt;:12:15: error: no viable constructor or deduction guide for deduction of template …



2
İş parçacığı güvenlik kuralları tarafından önerilen sabit olmayan bağımsız değişken ile yapıcı kopyalansın mı?
Eski bir kod parçası için bir sarıcı var. class A{ L* impl_; // the legacy object has to be in the heap, could be also unique_ptr A(A const&amp;) = delete; L* duplicate(){L* ret; legacy_duplicate(impl_, &amp;L); return ret;} ... // proper resource management here }; Bu eski kodda, bir nesneyi “çoğaltan” …

2
Programcı düzeyinde C ++ std :: atomic ile neler garanti edilir?
Hakkında birkaç makale, görüşme ve yığın akışı ile ilgili soruları dinledim ve okudum ve std::atomicbunu iyi anladığımdan emin olmak istiyorum. Önbellek satırıyla hala kafam karıştığından, MESI (veya türetilmiş) önbellek tutarlılık protokollerinde, mağaza arabelleklerinde, geçersiz sıralarda vb. Olası gecikmeler nedeniyle görünürlük yazıyor. X86'nın daha güçlü bir bellek modeli olduğunu okudum ve …

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.