Aşağıda Tanımlanmamış Davranış için IIFE (Hemen Lambda-Axpression olarak adlandırılır) olarak ifade edilen iki test durumu bulunmaktadır:
constexpr auto test3 = []{
int* p{};
{
int x{};
p = &x;
}
return *p; // Undefined Behaviour
}(); // IIFE
constexpr auto test4 = []{
int x = std::numeric_limits<int>::min();
int y = -x; // Undefined Behaviour
return y;
}();
int main() {}
GCC gövdesi ile derlendiğinde, test4
a'de Tanımsız Davranış sergilediğinden doğru bir şekilde reddedilir constexpr
. Öte yandan test3
kabul edilir.
GCC kabul etme hakkı var mı test3
?
4
@ formerlyknownas_463035818 Standart, bir bağlamda TÜM UB'nin teşhis edilmesini gerektirir.
—
NathanOliver
@NathanOliver oh teşekkürler. Bu nasıl öğrenirim, hatalar
—
yaparım
Evet. Bir GCC hatası gibi görünüyor
—
NathanOliver
Rapor edeceğim.
—
wimalopaan