Derleyici Hatası C3615
constexpr işlevi 'function' sabit ifadeye neden olamaz
İşlev işlevi derleme zamanında olarak constexpr
değerlendirilemedi. olmak constexpr
için, bir işlev yalnızca diğer constexpr
işlevleri çağırabilir.
Örnek
Visual Studio 2017, koşullu değerlendirme işleminin sol tarafındaki işlenen bir constexpr
bağlamda geçerli olmadığında doğru bir hata oluşturur. Aşağıdaki kod Visual Studio 2015'te derlenmiş ancak Visual Studio 2017'de derlenmemektedir.
// C3615.cpp
// Compile with: /c
template<int N>
struct myarray
{
int size() const { return N; }
};
constexpr bool f(const myarray<1> &arr)
{
return arr.size() == 10 || arr.size() == 11; // C3615 starting in Visual Studio 2017
}
Bu sorunu düzeltmek için işlevini olarak constexpr
bildirin array::size()
veya niteleyiciyi constexpr
'den f
kaldırın.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin