Constexpr işlevlerinde GCC 6 ve 7'de (GCC 5'te değil) bir hata buldum; bu, işlev derleme zamanında değerlendirilirse farklı sonuçlara yol açar (yanlış sonuç) veya çalışma zamanı (doğru sonuç). GCC Hata - Constexpr'de Giriş/Azaltma dizisi erişimi
#include <iostream>
constexpr int bar(int *b) {
int i = 0;
b[i++] = 1; // GCC produce here an failure.
return 0;
}
constexpr int foo()
{
int tmp[] = {0};
bar(tmp);
return tmp[0];
}
constexpr int cexprI = foo();
int main()
{
std::cout << cexprI << " " << foo() << "\n";
return 0;
}
sorun
dizi erişim içinde artış (aynı zamanda azaltmaya yönelik gerçekleşir) bir işlemdir.Sabit ifadenin derleme zamanı sonucu 0 (yanlış) ve çalışma zamanı 1'dir (doğru).
herkes bu hatayı onaylamak ve bu rapor Could: OradaUser account creation has been restricted.
bir hesap oluşturamazsınız
https://gcc.gnu.org/bugzilla/
. Yönetici ile temasa geçtim, ama benim için hata eleştirmek için çok önemli. Bu yüzden sizi bilgilendirmek istedi. Teşekkür ederim!