Tại sao tính năng này hoạt động?const biến là tham số mẫu không phải kiểu (VARIABLE không thể xuất hiện trong biểu thức không đổi)
char __nontype[] = "foo";
typedef TemplateClass<T, __nontype> MyClass;
Nhưng điều này (có biến cố định) phải không?
const char __nontype[] = "foo";
typedef TemplateClass<T, __nontype> MyClass;
Lỗi trình biên dịch:
lỗi: '__nontype' không thể xuất hiện trong một hằng số thể hiện
lỗi: template luận 2 không hợp lệ
Điều đó có thể phụ thuộc vào định nghĩa của TemplateClass <>. Bạn có thể đăng bài đó không? – hatboyzero
@hatboyzero nó không – sehe
Tôi nghĩ rằng sự hiểu lầm cơ bản ở đây là bạn giả định các 'const' sửa đổi tự động làm cho một cái gì đó một' constexpr'. Các mảng Char không phải là hằng số biên dịch; chúng không được biết cho đến khi thời gian liên kết. – tenfour