Voglio che un parametro template accetti un modello che abbia un argomento numerico del template.Come avere un parametro modello template come valore numerico?
Questo esempio forse eccessivamente semplificato, ma vorrei qualcosa di simile:
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>())
}
non deve essere la comprensione della sintassi per questo, come deve essere possibile. Come potrei realizzare questo?
cosa sta 'TT' dovrebbe essere? come dovrebbe il compilatore dedurre il suo tipo quando chiama 'fnx' in' fny'? puoi dare più contesto del tuo problema che stai cercando di risolvere con questo approccio? –
@ m.s. 'int', presumibilmente. – Barry
Sintatticamente è necessario 'modello classe TX'. Ma non è tutto il problema. –