0
template <int T> struct int2type{};
template<int I>
void func(int2type<I>)
{
printf("int_val: %i\n", I);
}
int main(int argc, char *argv[])
{
func(int2type<10>());
}
当然它打印10无法理解C++模板11函数参数扣
我的模板和类型推导如何工作的一些基本的想法,但我无法理解这样的代码。 I
背后的魔法是什么?我们如何知道I
from int2type
实例传递给func
?
我不明白这有什么神奇的。编译器希望某些'I'的参数为'int2type '。你传入一个类型为'int2type <10>'的参数。编译器对它们进行比较,并发现'I'必须是'10'才能使这两种类型相同。 – Brian
哦,是的!现在我看到它是如何工作的。谢谢! – sigmaN