この例を考えると:
template< typename T, T &V>
void doSomething() {
V = 1;
}
int i;
double d1, d2;
int main() {
doSomething< int, i>();
doSomething< double, d1>();
doSomething< double, d2>();
return 0;
}
呼び出しで型名を削除することは可能ですか? このようなもの:
doSomething< i>();
doSomething< d1>();
doSomething< d2>();
関数のシグネチャは変更しないでください。次のように使用できる必要があります。
typedef void (*THandler)();
THandler handlers[] = {
&doSomething< int, i>,
&doSomething< double, d1>,
&doSomething< double, d2>
};