/fpcvt (Kayan noktadan tamsayıya dönüştürme uyumluluğu)

Derleyicinin kayan nokta dönüştürmelerinin tamsayı türlerine nasıl davranacaklarını belirtir.

Söz dizimi

/fpcvt:IA
/fpcvt:BC

Bağımsız değişkenler

/fpcvt:IA

seçeneği, /fpcvt:IA sonuçların Intel AVX-512 dönüştürme yönergeleriyle uyumlu olması için derleyiciye kayan nokta değerlerini tamsayılara dönüştürmesini söyler. Bu davranış, x86 hedefleri için Visual Studio 2019'daki olağan davranıştır.

/fpcvt:BC

seçeneği /fpcvt:BC , sonuçların Visual Studio 2017 ve önceki derleyicilerle uyumlu olması için derleyiciye kayan nokta değerlerini işaretsiz tamsayılara dönüştürmesini söyler. Bu davranış Visual Studio 2022'de varsayılandır.

Açıklamalar

Visual Studio 2019 sürüm 16.8 ve sonraki sürümlerinde, /fpcvt kayan noktadan tamsayıya dönüştürmelerin sonuçlarını denetlemek için derleyici seçeneği kullanılabilir. seçeneği, /fpcvt:BC Visual Studio 2022'nin varsayılan davranışını belirtir. Bu, Visual Studio 2017 ve önceki sürümlerin davranışıyla aynıdır. /fpcvt:IA seçeneği, Intel Mimarisi (IA) AVX-512 dönüştürme yönergesi davranışıyla uyumlu davranışı belirtir. Bu seçenek 32 bit x86 veya 64 bit x64 hedefleriyle kullanılabilir ve belirtilip belirtilmediğinde /arch:AVX512 uygulanır.

Visual Studio 2019 için x64 hedefleri için varsayılan davranış belirtilmediği sürece /arch:AVX512 ile /fpcvt:BC tutarlıdır. Genellikle, x86 hedeflerinin davranışı , altında /arch:IA32/arch:SSEveya bazen işlev çağrısının sonucunun doğrudan işaretsiz bir tamsayıya dönüştürülmesi dışında ile /fpcvt:IAtutarlıdır. /fpcvt Tüm dönüştürmelerin her iki hedefte de tutarlı bir şekilde işlenmesi için varsayılan geçersiz kılmaların kullanılması. ARM ve ARM64 hedefleri için dönüştürmelerin davranışı veya /fpcvt:IAile /fpcvt:BC tutarlı değildir.

Standart C++ kesilen kayan nokta değeri tamsayı türünde tam olarak gösterilebilirse, bu türe dönüştürüldüğünde bu değere sahip olması gerektiğini belirtir. Aksi takdirde, herhangi bir davranışa izin verilir. Her iki seçenek de /fpcvt Standard C++ ile uyumludur. Tek fark, geçersiz kaynak değerler için döndürülen değerlerdir.

seçeneği /fpcvt:IA , geçersiz dönüştürmelerin sıfırdan en uzak hedef değer olan tek bir sentinel değeri döndürmesine neden olur. İmzalı türlere dönüştürme için sentinel, bu tür için en düşük değerdir. İmzasız türler en büyük değeri kullanır. Kayan nokta işlemleri, geçersiz bir işlemi göstermek için Sayı Olmayan (NaN) değeri döndürebilir. Bu gösterge, NaN değerleri olmayan tamsayı türlerine dönüştürme seçeneği değildir. Sentinel, bir NaN değeri için ara sunucu olarak kullanılır, ancak geçerli bir dönüştürmenin sonucu da olabilir.

seçeneği ayrıca /fpcvt:BC , kaynak geçersiz olduğunda imzalı türlere dönüştürmenin mümkün olan en düşük değeri döndürmesini sağlar. Ancak, işaretsiz tamsayı türlerine dönüştürme, dönüştürmeyi long longtemel alır. Bir değeri değerine dönüştürmek için unsigned intderleyici önce değerini türüne long longdönüştürür. Derleyici daha sonra sonucu 32 bit olarak kısaltıyor. Bir değeri değerine unsigned long longdönüştürmek için long long , için çok yüksek olan geçerli kaynak değerler özel durum olarak işlenir. Diğer tüm değerler önce öğesine long long dönüştürülür ve ardından öğesine yeniden yayınlanır unsigned long long.

Seçenekler /fpcvt Visual Studio 2019 sürüm 16.8'de yenidir. Komut satırında birden /fpcvt fazla seçenek belirtirseniz, sonraki seçenek öncelikli olur ve derleyici bir uyarı oluşturur.

Dönüştürmeler için iç işlevler

Belirli bir dönüştürmenin davranışını, genel olarak geçerli olan seçeneğinden /fpcvt bağımsız olarak belirtebilirsiniz. Derleyici, ile /fpcvt:IAuyumlu dönüştürmeler için iç sentinel dönüştürme işlevleri sağlar. Daha fazla bilgi için bkz . Sentinel dönüştürme işlevleri. Derleyici ayrıca ARM veya ARM64 hedef mimarilerindeki dönüştürmelerle uyumlu doygunluk dönüştürme işlevleri sağlar. Daha fazla bilgi için bkz . Doygunluk dönüştürme işlevleri.

Derleyici, geçerli dönüştürmeler için mümkün olan en kısa sürede yürütülen iç dönüştürme işlevlerini de destekler. Bu işlevler herhangi bir değer oluşturabilir veya geçersiz dönüştürme için bir özel durum oluşturabilir. Sonuçlar hedef platforma, derleyici seçeneklerine ve bağlama bağlıdır. Bunlar, önceden aralık denetimi yapılmış değerleri veya geçersiz dönüştürmeye neden olmayacak şekilde oluşturulan değerleri işlemek için kullanışlıdır. Daha fazla bilgi için bkz . Hızlı dönüştürme işlevleri.

Bu derleyici seçeneğini Visual Studio geliştirme ortamında ayarlamak için

  1. Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.

  2. Yapılandırma Özellikleri>C/C++>Komut Satırı özellik sayfasını seçin.

  3. veya /fpcvt:BCeklemek /fpcvt:IA için Ek Seçenekler özelliğini değiştirin. Değişikliklerinizi kaydetmek için Tamam'ı seçin.

Bu derleyici seçeneğini program üzerinden ayarlamak için

Ayrıca bkz.

MSVC derleyici seçenekleri
MSVC derleyicisi komut satırı söz dizimi
Hızlı dönüştürme işlevleri
Doygunluk dönüştürme işlevleri
Sentinel dönüştürme işlevleri