2013-04-24 39 views
1

我知道長時間複雜的內聯方法可能會影響性能(儘管簡單的方法可能會提高性能)。但是,模板類的方法必須在頭文件中定義。他們是內嵌?如果是的話,會不會對演出產生影響?我應該在模板類中使用長而複雜的方法嗎?長而複雜的模板成員方法會影響性能嗎?

回答

5

如果編譯器認爲它會提高性能,就會內聯該函數。如果它認爲它不會提高性能,即使它在標題中定義,也不會內聯。如果它實際上沒有內聯函數,那麼當這個函數出現在不同的編譯單元中時,鏈接器也不會感到困惑。

即使當您聲明功能inline時也是如此。

所以編譯器什麼是最好的,你不必擔心。

+0

謝謝你的快速明確的答案! – GuLearn 2013-04-24 00:45:58

1

您應該編寫您需要的代碼,並將其留給編譯器以確定如何最好地使用它。在頭文件中定義模板函數不會使它們內聯;編譯器可能會內聯它們,或者它可能不內聯。