Can C++ 11 derleyicileri (ve onlar) bir işlevin constexpr olduğunu ve constexpr olarak bildirilmese bile bunları işleme tabi tuttuklarını fark edebilirler mi?örtülü bir constexpr?
Ben Wikipedia'dan düz örneği kullanarak birisiyle constexpr kullanımını gösteren edildi: Benim için sürpriz
int get_five() {return 5;}
int some_value[get_five() + 7]; // Create an array of 12 integers. Ill-formed C++
derleyici onunla Tamam oldu. Bu yüzden, birkaç int parametresini almak, onları çoğaltmak ve constexpr olarak açık bir şekilde bildirilmediğinde sonucu döndürmek için get_five() öğesini değiştirdim. Derleyici de bununla tamam oldu. Derleyici bunu yapabilirse, açıkça constexpr bir şey bildirmek için gerekli kısıtlamalara sahip olmak için fazla bir nokta yoktur.
Belki de derleyiciniz VLA'yı bir uzantı olarak destekler. Bunu düşündün mü? – 0x499602D2
Bu ne derleyici? – SomeWittyUsername
[C++ kitaplarının olası kopyası, dizi dizisi sabit ifade olmalı, ancak aşağıdaki kod neden çalışıyor?] (Http://stackoverflow.com/questions/5947661/in-c-books-array-bound-must-be -constant-expression-ama-why-the-takip-cod) –