Tôi muốn có tham số mẫu chấp nhận mẫu có đối số mẫu số.Làm cách nào để tham số mẫu mẫu có giá trị số?
Ví dụ này có lẽ quá đơn giản, nhưng tôi muốn một cái gì đó như thế này:
template <int X>
struct XX
{
static const int x = X;
};
template<typename TT, TT V, template<V> TX>
void fnx(TX<V> x)
{
static_assert(V == TX::x, "IMPOSSIBLE!");
}
void fny()
{
fnx(XX<1>())
}
tôi không được hiểu cú pháp cho điều này, vì nó phải thực hiện được. Làm thế nào tôi sẽ thực hiện được điều này?
gì đang 'TT' nghĩa vụ phải được? làm thế nào trình biên dịch sẽ suy ra loại của nó khi gọi 'fnx' trong' fny'? bạn có thể cung cấp thêm ngữ cảnh về vấn đề của mình mà bạn đang cố gắng giải quyết bằng cách tiếp cận này không? –
@ m.s. 'int', có lẽ là. – Barry
Cú pháp bạn cần 'mẫu lớp TX'. Nhưng đó không phải là toàn bộ vấn đề. –