«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
Sıkılaştırma işlevi neden tanımlanmamış davranışa izin veriyor?
C ++ 'da sabit ifadelerin çok düzgün bir özelliği vardır: değerlendirmelerinin tanımlanmamış davranışı olamaz ( 7.7.4.7 ): E ifadesi, soyut makinenin kurallarına ([intro.execution]) uygun olarak e değerlendirmesi aşağıdakilerden birini değerlendirmediği sürece, temel sabit bir ifadedir: ... bu belgenin [intro] ila [cpp] 'de belirtildiği gibi tanımlanmamış davranışa sahip bir işlem [Not: …

3
Yıkıcı neden operatör silme işleminde çağrılmıyor?
İçinde ::deletebir sınıf çağırmaya çalıştım operator delete. Ancak yıkıcı çağrılmaz. Dersim tanımlanmış MyClassolan operator deleteaşırı. Küresel operator deletede aşırı yüklü. Aşırı operator deleteait MyClassAşırı yüklenmiş küresel arayacak operator delete. class MyClass { public: MyClass() { printf("Constructing MyClass...\n"); } virtual ~MyClass() { printf("Destroying MyClass...\n"); } void* operator new(size_t size) { printf("Newing …

9
Catalina C ++: <cmath> üstbilgilerini kullanma hatası veriyor: global ad alanında 'signbit' adlı üye yok
Mojave'den Catalina'ya yükseltme yaptıktan sonra Kurulum: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk env. &lt;cmath&gt;Üstbilgi kullanan bir programı derleyemiyorum. Hiçbir şeyi değiştirmeyen MacOSSDK Konumuna işaret etmek için CFLAGS, CCFLAGS, CXXFLAGS değiştirmeyi denedim Scanning dependencies of target OgreMain /Applications/Xcode.app/Contents/Developer/usr/bin/make -f OgreMain/CMakeFiles/OgreMain.dir/build.make OgreMain/CMakeFiles/OgreMain.dir/build [ 0%] Building CXX object OgreMain/CMakeFiles/OgreMain.dir/src/OgreASTCCodec.cpp.o cd /Users/roman/Downloads/ogre-1.12.2/build/OgreMain &amp;&amp; /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -DOgreMain_EXPORTS -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0 -I/Users/roman/Downloads/ogre-1.12.2/OgreMain/src/OSX -I/Users/roman/Downloads/ogre-1.12.2/OgreMain/include/Threading -I/Users/roman/Downloads/ogre-1.12.2/OgreMain/src …

4
Derleme zamanında bir yöntemin tam olarak tek bir yerde çağrıldığından emin olun
Derleme zamanında bir yöntemin tam olarak tek bir yerde çağrılmasını sağlamanın mümkün olup olmadığını merak ediyorum. İşlev bir kereden fazla çağrıldığında (örn. Bir döngüde) TAMAM olduğunu unutmayın - ancak iki ayrı döngüde çağrılmamalıdır. Bu iki parçaya ayrılabilir, ben de her iki parçayı da kapsayan çözümlerle ilgileniyorum: (a) bir yöntemin en …
15 c++ 

5
Toplam uzunluktan daha az yer sayısı için STL kullanarak c ++ 'da permütasyon nasıl oluşturulur
Bir var c++ vectorolan std::pair&lt;unsigned long, unsigned long&gt;nesneler. Kullanarak vektör nesnelerinin permütasyonları üretmeye çalışıyorum std::next_permutation(). Ancak, permütasyonların permutations, beklenen döndürülmüş permütasyonun boyutunun belirtildiği python işlevine benzer şekilde belirli bir boyutta olmasını istiyorum . Temel olarak, c++eşdeğer import itertools list = [1,2,3,4,5,6,7] for permutation in itertools.permutations(list, 3): print(permutation) Python Demosu (1, …

3
En ucuz argüman türünü belirlemenin derleme zamanı yolu
Şuna benzeyen bir şablonum var template &lt;typename T&gt; class Foo { public: Foo(const T&amp; t) : _t(t) {} private: const T _t; }; Argüman türünün bool veya char gibi önemsiz olduğu durumlarda const referansı kullanmaktan kaçınmak için anlayışlı bir şablon metaprogramlama yolu var mı? sevmek: Foo(stl::smarter_argument&lt;T&gt;::type t) : _t(t) {}
15 c++  stl 

4
Kaynaklardan std :: map anahtarlarının çalınmasına izin var mı?
C ++ 'da, artık ihtiyaç duymadığım bir haritadan kaynakları çalmak sorun değil mi? Daha doğrusu, ben bir olduğunu varsayalım std::mapile std::stringanahtar ve ben kaynaklarını çalarak bunun bir vektör dışarı inşa etmek istiyorum mapkullanarak s tuşları std::move. Anahtarlara böyle bir yazma erişiminin iç veri yapısını (anahtarların sıralaması) bozduğunu mapancak daha sonra …

1
C ++ derleyicileri extern değişkenini nasıl bulur?
Bu programı g ++ ve clang ++ ile derledim. Bir fark var: g ++ 1 yazdırır, ancak clang ++ 2 yazdırır. Görünüşe göre g ++: extern değişkeni en kısa kapsamda tanımlanmıştır. clang ++: extern değişkeni en kısa global kapsamda tanımlanır. C ++ spec bu konuda herhangi bir şartname var mı? …

5
Makro kullanarak kaynak dosya satırları sayılsın mı?
C / C ++ önişlemcisini kullanarak, kaynak dosyadaki satırları bir makroya veya bir tür derleme zamanı kullanılabilir değere saymak mümkün müdür? Örneğin ben yerine MAGIC1, MAGIC2ve MAGIC3kullanırken aşağıda ve bir şekilde değerini 4 olsun MAGIC3? MAGIC1 // can be placed wherever you like before the relevant // lines - either …

2
`Std :: basic_ios`'un neden bir kamu kurucusu var?
std::basic_iosbir kamu kurucusu var : explicit basic_ios (std::basic_streambuf&lt;CharT,Traits&gt;* sb); IMO, bir sınıfın ortak bir kurucuya sahip olmasının tek nedeni, bir programda o sınıfın bağımsız bir örneğini kullanmaktır. Bir sınıf yalnızca diğer sınıfların ondan alçalması için mevcutsa (durumun göründüğü gibi basic_ios), sınıfın tüm kurucuları olmalıdır protected. İnşaatçılarının std::ios_basehepsi korunur. Ancak, bir …


2
Fonksiyon nesnesini kullanarak C ++ iş parçacığı, nasıl birden yıkıcı denir ama yapıcılar değil?
Lütfen kod snippet'ini aşağıda bulabilirsiniz: class tFunc{ int x; public: tFunc(){ cout&lt;&lt;"Constructed : "&lt;&lt;this&lt;&lt;endl; x = 1; } ~tFunc(){ cout&lt;&lt;"Destroyed : "&lt;&lt;this&lt;&lt;endl; } void operator()(){ x += 10; cout&lt;&lt;"Thread running at : "&lt;&lt;x&lt;&lt;endl; } int getX(){ return x; } }; int main() { tFunc t; thread t1(t); if(t1.joinable()) { cout&lt;&lt;"Thread …


1
Eski yerleşimci :: construct ile yeni olan ve açık kurucu arasındaki fark nedir?
Bildiğim gibi std::allocator&lt;T&gt;::constructC ++ eski sürümünde sadece iki parametre alır; birincisi, türünde bir nesne oluşturmak istediğimiz ham, yapılandırılmamış belleğin bir göstergesidir Tve ikincisi, o nesneyi başlatmak için öğe türünün bir değeridir. Böylece kopya oluşturucu çağrılır: struct Foo { Foo(int, int) { cout &lt;&lt; "Foo(int, int)" &lt;&lt; endl; } /*explicit*/ Foo(int) …
15 c++  allocator 

2
Hiçbir zaman geçerli bir C ++ programını sonlandırmaz mı?
Bir programın sonlanması gerekiyor mu? Diğer bir deyişle, teknik olarak Tanımsız Davranış sonsuza dek çalışan bir program mı? Bunun boş döngülerle ilgili olmadığını unutmayın. Sonsuza kadar "şeyler" (yani gözlemlenebilir davranış) yapan programlar hakkında konuşmak. Örneğin böyle bir şey: int main() { while (true) { try { get_input(); // calls IO …

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.