Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
C++ kitaplık modüllerini kullanarak C++ standart kitaplığını içeri aktarmayı öğrenin. Bu, daha hızlı derlemeyle sonuçlanır ve üst bilgi dosyalarını, üst bilgi birimlerini veya önceden derlenmiş üst bilgileri (PCH) kullanmaktan daha sağlamdır.
Bu öğreticide, aşağıdakiler hakkında bilgi edinin:
- Standart kitaplığı komut satırından modül olarak içeri aktarma.
- Modüllerin performans ve kullanılabilirlik avantajları.
- İki standart kitaplık modülü
std
vestd.compat
aralarındaki fark.
Önkoşullar
Bu öğretici için Visual Studio 2022 17.5 veya üzeri gerekir.
Standart kitaplık modüllerine giriş
Üst bilgi dosyaları, makro tanımlarına, bunları dahil ettiğiniz sıraya bağlı olarak değişebilen semantiklerden muzdariptir ve bunlar derlemeyi yavaşlatırlar. Modüller bu sorunları çözer.
Artık standart kitaplığı üst bilgi dosyaları yerine modül olarak içeri aktarmak mümkündür. Bu, üst bilgi dosyalarını veya üst bilgi birimlerini veya önceden derlenmiş üst bilgileri (PCH) dahil etmekten çok daha hızlı ve daha sağlamdır.
C++23 standart kitaplığı iki adlandırılmış modülü tanıtır: std
ve std.compat
:
std
gibistd::vector
C++ standart kitaplık ad alanındastd
tanımlanan bildirimleri ve adları dışarı aktarır. Ayrıca ve gibi işlevlerstd::printf()
sağlayan ve<cstdlib>
gibi<cstdio>
C sarmalayıcı üst bilgilerinin içeriğini dışarı aktarır. gibi::printf()
genel ad alanında tanımlanan C işlevleri dışarı aktarılamaz. Bu, gibi<cstdio>
bir C sarmalayıcı üst bilgisinin C genel ad alanı sürümlerini getiren gibistdio.h
C üst bilgi dosyalarını da içerdiği durumu iyileştirir. İçeri aktarırsanızstd
bu bir sorun değildir.std.compat
içindekistd
her şeyi dışarı aktarır ve C çalışma zamanı genel ad alanlarını (::fopen
::size_t
::strlen
,::printf
vb.) ekler. Modülü,std.compat
genel ad alanında birçok C çalışma zamanı işlevine/türüne başvuran kod temelleriyle çalışmayı kolaylaştırır.
Derleyici, veya import std.compat;
kullandığınızda import std;
standart kitaplığın tamamını içeri aktarır ve bunu tek bir üst bilgi dosyası getirmekten daha hızlı yapar. Standart kitaplığın tamamını (veya import std.compat
) ile import std;
birlikte getirmek, örneğin' den #include <vector>
daha hızlıdır.
Adlandırılmış modüller makroları kullanıma sunmadığından, veya std.compat
öğesini içeri aktardığınızda std
, errno
, offsetof
, va_arg
ve diğerleri gibi assert
makrolar kullanılamaz. Geçici çözümler için bkz . Modül adlı standart kitaplıkta dikkat edilmesi gerekenler .
C++ modülleri hakkında
Üst bilgi dosyaları, C++ içindeki kaynak dosyalar arasında bildirimlerin ve tanımların nasıl paylaşıldığıdır. Standart kitaplık modüllerinden önce, standart kitaplığın ihtiyacınız olan bölümünü gibi #include <vector>
bir yönergeyle eklersiniz. Başlık dosyalarının semantiği, eklediğiniz sıraya veya belirli makroların tanımlanıp tanımlanmadığına bağlı olarak değişebileceğinden, üst bilgi dosyaları kırılgandır ve oluşturmak zordur. Ayrıca, bunları içeren her kaynak dosya tarafından yeniden işlenmeleri nedeniyle de derlemeyi yavaşlatırlar.
C++20, modüller olarak adlandırılan modern bir alternatifi tanıtır. C++23'te standart kitaplığı temsil eden adlandırılmış modülleri tanıtmak için modül desteğini büyük harfe çevirmeyi başardık.
Üst bilgi dosyaları gibi modüller de bildirimleri ve tanımları kaynak dosyalar arasında paylaşmanızı sağlar. Ancak üst bilgi dosyalarından farklı olarak, modüller kırılgan değildir ve makro tanımları veya bunları içeri aktardığınız sıradan dolayı anlamları değişmediğinden modüller daha kolay oluşturulur. Derleyici, modülleri dosyaları işleyenenden çok daha hızlı işleyebilir #include
ve derleme zamanında daha az bellek kullanır. Adlandırılmış modüller makro tanımlarını veya özel uygulama ayrıntılarını kullanıma sunmaz.
Modüller hakkında ayrıntılı bilgi için bkz . C++ 'da modüllere genel bakış Bu makalede C++ standart kitaplığının modül olarak kullanılması da ele alınmaktadır, ancak bunu yapmanın daha eski ve deneysel bir yolunu kullanır.
Bu makalede standart kitaplığı kullanmanın yeni ve en iyi yolu gösterilmektedir. Standart kitaplığı kullanmanın alternatif yolları hakkında daha fazla bilgi için bkz . Üst bilgi birimlerini, modülleri ve önceden derlenmiş üst bilgileri karşılaştırma.
Ile standart kitaplığı içeri aktarma std
Aşağıdaki örneklerde, komut satırı derleyicisini kullanarak standart kitaplığı modül olarak kullanma işlemi gösterilmektedir. Visual Studio IDE'de bunu yapma hakkında bilgi için bkz . ISO C++23 Standart Kitaplık Modülleri Oluşturma.
deyimi import std;
veya import std.compat;
standart kitaplığı uygulamanıza aktarır. Ancak önce modules adlı standart kitaplığı ikili biçimde derlemeniz gerekir. Aşağıdaki adımlar nasıl yapılacağını gösterir.
Örnek: Derleme ve içeri aktarma std
VS için bir x86 Yerel Araçlar Komut İstemi açın: Windows Başlat menüsünden x86 native yazın ve istem uygulama listesinde görünmelidir. İstemin Visual Studio 2022 sürüm 17.5 veya üzeri olduğundan emin olun. İstemin yanlış sürümünü kullanırsanız hata alırsınız. Bu öğreticide kullanılan örnekler CMD kabuğuna yöneliktir.
gibi
%USERPROFILE%\source\repos\STLModules
bir dizin oluşturun ve bunu geçerli dizin yapın. Yazma erişiminiz olmayan bir dizin seçerseniz derleme sırasında hata alırsınız.std
Adlandırılmış modülü aşağıdaki komutla derleyin:cl /std:c++latest /EHsc /nologo /W4 /c "%VCToolsInstallDir%\modules\std.ixx"
Hata alırsanız komut isteminin doğru sürümünü kullandığınızdan emin olun.
std
Adlandırılmış modülü derlemek için, yerleşik modülü içeri aktaran kodla kullanmak istediğiniz derleyici ayarlarını kullanın. Çok projeli bir çözümünüz varsa, modül adlı standart kitaplığı bir kez derleyebilir ve ardından derleyici seçeneğini kullanarak tüm projelerinizden bu kitaplığa/reference
başvurabilirsiniz.Derleyici, önceki derleyici komutunu kullanarak iki dosya çıkışı oluşturur:
std.ifc
, derleyicinin deyimini işlemek için başvurduğu adlandırılmış modül arabiriminin derlenmiş ikili gösterimidirimport std;
. Bu yalnızca derleme zamanı yapıtıdır. Uygulamanızla birlikte gelmez.std.obj
adlandırılmış modülün uygulamasını içerir. Standart kitaplıktan kullandığınız işlevselliği statik olarak uygulamanıza bağlamak için örnek uygulamayı derlerken komut satırına ekleyinstd.obj
.
Bu örnekteki anahtar komut satırı anahtarları şunlardır:
Anahtar Anlamı /std:c++:latest
C++ dil standardının ve kitaplığının en son sürümünü kullanın. altında /std:c++20
modül desteği sağlansa da modules adlı standart kitaplık için destek almak için en son standart kitaplığa ihtiyacınız vardır./EHsc
olarak işaretlenen extern "C"
işlevler dışında C++ özel durum işlemesini kullanın./W4
Tüm düzey 1, düzey 2, düzey 3 ve olası sorunları erken yakalamanıza yardımcı olabilecek en düzey 4 (bilgilendirme) uyarılarını etkinleştirdiğinden, özellikle yeni projeler için /W4 kullanılması genellikle önerilir. Temelde mümkün olan en az sayıda bulunması zor kod hatasının sağlanmasına yardımcı olabilecek lint benzeri uyarılar sağlar. /c
Bu noktada ikili adlı modül arabirimini oluşturacağımızdan bağlamadan derleyin. Nesne dosyası adını ve adlandırılmış modül arabirimi dosya adını aşağıdaki anahtarlarla denetleyebilirsiniz:
/Fo
nesne dosyasının adını ayarlar. Örneğin,/Fo:"somethingelse"
. Varsayılan olarak, derleyici nesne dosyası için derlediğiniz modül kaynak dosyasıyla (.ixx
) aynı adı kullanır. Örnekte, modül dosyasını derlediğimiz için nesne dosyasıstd.ixx
varsayılan olarak adıdırstd.obj
./ifcOutput
adlı modül arabirim dosyasının (.ifc
) adını ayarlar. Örneğin,/ifcOutput "somethingelse.ifc"
. Varsayılan olarak, derleyici derlemekte olduğunuz modül kaynak dosyasıyla (.ifc
) modül arabirim dosyası (.ixx
) için aynı adı kullanır. Örnekte, modül dosyasınıstd.ifc
derlediğimiz için oluşturulanifc
dosyastd.ixx
varsayılan olarakdır.
İlk olarak aşağıdaki içeriğe
std
sahip adlıimportExample.cpp
bir dosya oluşturarak oluşturduğunuz kitaplığı içeri aktarın:// requires /std:c++latest import std; int main() { std::cout << "Import the STL library for best performance\n"; std::vector<int> v{5, 5, 5}; for (const auto& e : v) { std::cout << e; } }
Önceki kodda
import std;
ve#include <iostream>
öğesinin yerini alır#include <vector>
. deyimiimport std;
, tüm standart kitaplığı tek bir deyimle kullanılabilir hale getirir. Standart kitaplığın tamamını içeri aktarmak genellikle gibi#include <vector>
tek bir standart kitaplık üst bilgisi dosyasını işlemekten çok daha hızlıdır.Önceki adımla aynı dizinde aşağıdaki komutu kullanarak örneği derleyin:
cl /c /std:c++latest /EHsc /nologo /W4 /reference "std=std.ifc" importExample.cpp link importExample.obj std.obj
Derleyici, deyimi tarafından
import
belirtilen modül adıyla eşleşen dosyayı otomatik olarak aradığından.ifc
, bu örnekteki komut satırında belirtmek/reference "std=std.ifc"
gerekmez. Derleyici karşılaştığındaimport std;
, kaynak kodla aynı dizinde bulunp bulunmadiğini bulabilirstd.ifc
..ifc
Dosya kaynak koddan farklı bir dizindeyse, buna başvurmak için derleyici anahtarını kullanın/reference
.Bu örnekte, kaynak kodu derlemek ve modülün uygulamasını uygulamaya bağlamak ayrı adımlardır. Olmak zorunda değiller. Bir adımda derlemek ve bağlamak için kullanabilirsiniz
cl /std:c++latest /EHsc /nologo /W4 /reference "std=std.ifc" importExample.cpp std.obj
. Ancak ayrı ayrı derlemek ve bağlamak kullanışlı olabilir çünkü o zaman modül adlı standart kitaplığı yalnızca bir kez oluşturmanız gerekir ve ardından derlemenizin bağlantı adımında bu kitaplığa projenizden veya birden çok projeden başvurabilirsiniz.Tek bir proje oluşturuyorsanız, komut satırına ekleyerek
"%VCToolsInstallDir%\modules\std.ixx"
module adlı standart kitaplığı oluşturma adımlarınıstd
ve uygulamanızı oluşturma adımını birleştirebilirsiniz. Modülü kullananstd
tüm.cpp
dosyaların önüne koyun.Varsayılan olarak, çıktı yürütülebilir dosyasının adı ilk giriş dosyasından alınır.
/Fe
İstediğiniz yürütülebilir dosya adını belirtmek için derleyici seçeneğini kullanın. Bu öğretici, adlandırılmış modülü ayrı bir adım olarak derlemeyistd
gösterir çünkü modül adlı standart kitaplığı yalnızca bir kez oluşturmanız gerekir ve ardından projenizden veya birden çok projeden başvurabilirsiniz. Ancak bu komut satırında gösterildiği gibi her şeyi birlikte oluşturmak kullanışlı olabilir:cl /FeimportExample /std:c++latest /EHsc /nologo /W4 "%VCToolsInstallDir%\modules\std.ixx" importExample.cpp
Önceki komut satırı göz önüne alındığında, derleyici adlı
importExample.exe
bir yürütülebilir dosya oluşturur. Çalıştırdığınızda aşağıdaki çıkışı oluşturur:Import the STL library for best performance 555
ile standart kitaplığı ve genel C işlevlerini içeri aktarma std.compat
C++ standart kitaplığı ISO C standart kitaplığını içerir. Modülstd.compat
, modülün , , std::cout
, std::printf
ve std::scanf
benzeri gibi std::vector
tüm işlevlerini std
sağlar. Ancak, bu işlevlerin , , ::scanf
, ::fopen
::size_t
ve benzeri ::printf
genel ad alanı sürümlerini de sağlar.
Adlandırılmış std.compat
modül, genel ad alanında C çalışma zamanı işlevlerine başvuran mevcut kodu geçirmeyi kolaylaştırmak için sağlanan bir uyumluluk katmanıdır. Genel ad alanına ad eklemekten kaçınmak istiyorsanız kullanın import std;
. Birçok nitelenmemiş (genel ad alanı) C çalışma zamanı işlevi kullanan bir kod tabanını geçirmeyi kolaylaştırmanız gerekiyorsa kullanın import std.compat;
. Bu, tüm genel adları ile std::
nitelemeniz gerekmeyecek şekilde genel ad alanı C çalışma zamanı adlarını sağlar. Genel ad alanı C çalışma zamanı işlevlerini kullanan mevcut bir kodunuz yoksa kullanmanız import std.compat;
gerekmez. Kodunuzda yalnızca birkaç C çalışma zamanı işlevi çağırırsanız, ile std::
ihtiyacı olan birkaç genel ad alanı C çalışma zamanı adını kullanmak import std;
ve nitelemek daha iyi olabilir. Örneğin, std::printf()
. Kodunuzu derlemeye çalıştığınızda olduğu gibi error C3861: 'printf': identifier not found
bir hata görürseniz genel ad alanı C çalışma zamanı işlevlerini içeri aktarmak için kullanmayı import std.compat;
göz önünde bulundurun.
Örnek: Derleme ve içeri aktarma std.compat
Kullanabilmeniz import std.compat;
için önce içindeki kaynak kod formunda std.compat.ixx
bulunan modül arabirimi dosyasını derlemeniz gerekir. Visual Studio, projenizle eşleşen derleyici ayarlarını kullanarak modülü derleyebileceğiniz modülün kaynak kodunu iletir. Adımlar, adlandırılmış modülü oluşturmaya std
benzer. Adlandırılmış std
modül, buna bağlı olduğundan std.compat
önce oluşturulur:
VS için Yerel Araçlar Komut İstemi açın: Windows Başlat menüsünden x86 native yazın ve istem uygulama listesinde görünmelidir. İstemin Visual Studio 2022 sürüm 17.5 veya üzeri olduğundan emin olun. İstemin yanlış sürümünü kullanırsanız derleyici hataları alırsınız.
Gibi bu örneği
%USERPROFILE%\source\repos\STLModules
denemek için bir dizin oluşturun ve bunu geçerli dizin yapın. Yazma erişiminiz olmayan bir dizin seçerseniz hata alırsınız.std
vestd.compat
adlandırılmış modüllerini aşağıdaki komutla derleyin:cl /std:c++latest /EHsc /nologo /W4 /c "%VCToolsInstallDir%\modules\std.ixx" "%VCToolsInstallDir%\modules\std.compat.ixx"
Bunları içeri aktaracak kodla kullanmak istediğiniz derleyici ayarlarını derleyip
std
std.compat
kullanmanız gerekir. Çok projeli bir çözümünüz varsa, bunları bir kez derleyebilir ve sonra derleyici seçeneğini kullanarak/reference
tüm projelerinizden bunlara başvurabilirsiniz.Hata alırsanız komut isteminin doğru sürümünü kullandığınızdan emin olun.
Derleyici, önceki iki adımda dört dosya çıkışı oluşturur:
std.ifc
, derleyicinin deyimini işlemek için başvurduğu, derlenmiş ikili adlı modül arabirimidirimport std;
. Derleyici ayrıca üzerinde derlendiğistd.ifc
için işlemeyestd.compat
import std.compat;
de başvururstd
. Bu yalnızca derleme zamanı yapıtıdır. Uygulamanızla birlikte gelmez.std.obj
standart kitaplığın uygulamasını içerir.std.compat.ifc
, derleyicinin deyimini işlemek için başvurduğu, derlenmiş ikili adlı modül arabirimidirimport std.compat;
. Bu yalnızca derleme zamanı yapıtıdır. Uygulamanızla birlikte gelmez.std.compat.obj
uygulama içerir. Ancak, uygulamanın çoğu tarafındanstd.obj
sağlanır. Standart kitaplıktan kullandığınız işlevselliği statik olarak uygulamanıza bağlamak için örnek uygulamayı derlerken komut satırına ekleyinstd.obj
.
Nesne dosyası adını ve adlandırılmış modül arabirimi dosya adını aşağıdaki anahtarlarla denetleyebilirsiniz:
/Fo
nesne dosyasının adını ayarlar. Örneğin,/Fo:"somethingelse"
. Varsayılan olarak, derleyici nesne dosyası için derlediğiniz modül kaynak dosyasıyla (.ixx
) aynı adı kullanır. Örnekte, ve modül dosyalarını derlediğimiz için nesne dosyası adları varsayılan olarak vestd.compat.obj
şeklindedirstd.obj
std.compat.obj
.std.ixx
/ifcOutput
adlı modül arabirim dosyasının (.ifc
) adını ayarlar. Örneğin,/ifcOutput "somethingelse.ifc"
. Varsayılan olarak, derleyici derlemekte olduğunuz modül kaynak dosyasıyla (.ifc
) modül arabirim dosyası (.ixx
) için aynı adı kullanır. Örnekte, ve modül dosyalarını derlediğimiz için oluşturulanifc
dosyalar varsayılan olarak vestd.compat.ixx
şeklindedirstd.ifc
std.compat.ifc
.std.ixx
Önce aşağıdaki içeriğe
std.compat
sahip adlıstdCompatExample.cpp
bir dosya oluşturarak kitaplığı içeri aktarın:import std.compat; int main() { printf("Import std.compat to get global names like printf()\n"); std::vector<int> v{5, 5, 5}; for (const auto& e : v) { printf("%i", e); } }
Önceki kodda
import std.compat;
ve#include <vector>
öğesinin yerini alır#include <cstdio>
. deyimiimport std.compat;
, standart kitaplığı ve C çalışma zamanı işlevlerini tek bir deyimle kullanılabilir hale getirir. C++ standart kitaplığını ve C çalışma zamanı kitaplığı genel ad alanı işlevlerini içeren bu adlandırılmış modülü içeri aktarmak, gibi#include <vector>
tek#include
bir modülü işlemekten daha hızlıdır.Aşağıdaki komutu kullanarak örneği derleyin:
cl /std:c++latest /EHsc /nologo /W4 stdCompatExample.cpp link stdCompatExample.obj std.obj std.compat.obj
Derleyici bir deyimdeki modül adıyla
import
eşleşen dosyayı otomatik olarak aradığından.ifc
komut satırında belirtmemizstd.compat.ifc
gerekmedi. Derleyici, kaynak kodla aynı dizine yerleştirdiğimiz için bu sorunla karşılaştığındaimport std.compat;
std.compat.ifc
, bunu komut satırında belirtme gereksinimini gideriyor..ifc
Dosya kaynak koddan farklı bir dizindeyse veya farklı bir ada sahipse, buna başvurmak için derleyici anahtarını kullanın/reference
.İçeri aktarırken
std.compat
, hem hem destd.compat
std.obj
içindestd.obj
kod kullandığındanstd.compat
bağlantı oluşturmanız gerekir.Tek bir proje oluşturuyorsanız, komut satırına ve
std.compat
(bu sırayla) ekleyerek"%VCToolsInstallDir%\modules\std.ixx"
ve"%VCToolsInstallDir%\modules\std.compat.ixx"
adlı modüller adlı standart kitaplığı oluşturma adımlarınıstd
birleştirebilirsiniz. Bu öğretici, standart kitaplık modüllerini ayrı bir adım olarak oluşturmayı gösterir çünkü modüller adlı standart kitaplığı yalnızca bir kez oluşturmanız gerekir ve sonra bunlara projenizden veya birden çok projeden başvurabilirsiniz. Ancak hepsini bir kerede oluşturmak uygunsa, bunları kullanan dosyaların.cpp
önüne koyduğundan emin olun ve bu örnekte gösterildiği gibi yerleşikexe
olarak adlandırmayı belirtin/Fe
:cl /c /FestdCompatExample /std:c++latest /EHsc /nologo /W4 "%VCToolsInstallDir%\modules\std.ixx" "%VCToolsInstallDir%\modules\std.compat.ixx" stdCompatExample.cpp link stdCompatExample.obj std.obj std.compat.obj
Bu örnekte, kaynak kodu derlemek ve modülün uygulamasını uygulamanıza bağlamak ayrı adımlardır. Olmak zorunda değiller. Bir adımda derlemek ve bağlamak için kullanabilirsiniz
cl /std:c++latest /EHsc /nologo /W4 stdCompatExample.cpp std.obj std.compat.obj
. Ancak ayrı ayrı derlemek ve bağlamak kullanışlı olabilir çünkü o zaman modüller adlı standart kitaplığı yalnızca bir kez oluşturmanız gerekir ve sonra derlemenizin bağlantı adımında bunları projenizden veya birden çok projeden başvurabilirsiniz.Önceki derleyici komutu adlı
stdCompatExample.exe
bir yürütülebilir dosya oluşturur. Çalıştırdığınızda aşağıdaki çıkışı oluşturur:Import std.compat to get global names like printf() 555
Modül adlı standart kitaplıkta dikkat edilmesi gerekenler
Adlandırılmış modüller için sürüm oluşturma, üst bilgilerle aynıdır. Adlandırılmış .ixx
modül dosyaları üst bilgilerle birlikte yüklenir, örneğin: "%VCToolsInstallDir%\modules\std.ixx
, bu yazının yazıldığı sırada kullanılan araçların sürümünde çözümlenir C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.38.33130\modules\std.ixx
. Adlandırılmış modülün sürümünü, kullanmak istediğiniz üst bilgi dosyasının sürümünü seçtiğiniz gibi,başvurabileceğiniz dizine göre seçin.
üst bilgi birimlerini ve adlandırılmış modülleri içeri aktarmayı karıştırmayın ve eşleştirin. Örneğin, aynı dosyada ve'yi import std;
yapmayınimport <vector>;
.
C++ standart kitaplık üst bilgi dosyalarını ve adlandırılmış modülleri std
veya std.compat
içeri aktarmayı karıştırmayın ve eşleştirin. Örneğin, aynı dosyada ve'yi import std;
yapmayın#include <vector>
. Ancak, C üst bilgilerini ekleyebilir ve adlandırılmış modülleri aynı dosyaya aktarabilirsiniz. Örneğin, aynı dosyada ve #include <math.h>
yapabilirsinizimport std;
. Yalnızca C++ standart kitaplık sürümünü <cmath>
eklemeyin.
Bir modülü birden çok kez içeri aktarmaya karşı savunmanız gerekmez. Başka bir ifadeyle, modüllerde stil üst bilgi korumalarına ihtiyacınız #ifndef
yoktur. Derleyici, adlandırılmış bir modülü ne zaman içeri aktardığını bilir ve yinelenen bunu yapma girişimlerini yoksayar.
Makroyu assert()
kullanmanız gerekiyorsa, öğesini seçin #include <assert.h>
.
Makroyu errno
kullanmanız gerekiyorsa, #include <errno.h>
. Adlandırılmış modüller makroları kullanıma sunmadığından, örneğin' den <math.h>
hataları denetlemeniz gerekiyorsa bu geçici çözümdür.
, INFINITY
ve INT_MIN
gibi NAN
makrolar tarafından tanımlanır <limits.h>
ve bu makroları ekleyebilirsiniz. Ancak ve yerine NAN
ve numeric_limits<double>::infinity()
INT_MIN
INFINITY
std::numeric_limits<int>::min()
yerine ve kullanabilirsiniz.import std;
numeric_limits<double>::quiet_NaN()
Özet
Bu öğreticide, modülleri kullanarak standart kitaplığı içeri aktarmış olacaksınız. Ardından C++ dilindeki Adlandırılmış modüller öğreticisinde kendi modüllerinizi oluşturma ve içeri aktarma hakkında bilgi edinin.
Ayrıca bkz.
Üst bilgi birimlerini, modülleri ve önceden derlenmiş üst bilgileri karşılaştırma
C++ içindeki modüllere genel bakış
Visual Studio'da C++ Modülleri Turu
Projeyi Modules adlı C++ öğesine taşıma