Istilah "konstan" benar-benar ambigu, dan kata kunci consttersebut menyesatkan.
constberarti: "jangan izinkan nilai objek ini tidak akan berubah setelah inisialisasi". Itu tidak berarti "kompilasi waktu konstan". Nilai awalnya dapat (dan biasanya memang) masih berasal dari sumber runtime.
Anda memerlukan konstanta waktu kompilasi untuk batas array.
Kadang-kadang mungkin untuk memiliki objek bernama fookonstanta waktu kompilasi, jika itu const dan itu diinisialisasi dari ekspresi konstan, seperti literal atau constexprbenda. Itulah masalahnya c; tidak demikian halnya untuk b.