读书人

c++模板实例化具现点的有关问题

发布时间: 2012-09-06 10:37:01 作者: rapoo

c++模板实例化具现点的问题。
[code=C/C++][/code]
template <typename T>
void f()
{
g();
h();
}

int main()
{
f<int>();
return 0;
}

void g()
{}
void h()
{}

void f();这个函数到底是在哪个位置具现的啊?


[解决办法]
模板函数的实例化时机及次数默认情况下是由编译器自行决定的,除非编译器提供了选项,只是偶也不太清楚这个“选项”是什么,因为从未遇到过需要控制实例化点的需求。
[解决办法]

探讨

引用:
8# 建议“仔细理解”,还是再说的详细一些吧。
根据 14.6.4.1 /1/7 的说法,根据 9# 的提法,只有 3 与 5 是可能的 POI,明显 3 处最合适。

3处是不可能适合的,因为在3处 g(),h()函数的定义还是不可见的。

[解决办法]
永远不要让自己的代码陷到需要讨论这个问题的窘境
珍惜生命,不要过度玩弄模板。
[解决办法]
探讨

引用:
引用:

引用:
引用:

引用:
8# 建议“仔细理解”,还是再说的详细一些吧。
根据 14.6.4.1 /1/7 的说法,根据 9# 的提法,只有 3 与 5 是可能的 POI,明显 3 处最合适。

3处是不可能适合的,因为在3处 g(),h()函数的定义还是不可见的。
……

读书人网 >C++

热点推荐