在C++中是什麼意思template and inline are orthogonal
?在C++中,「模板和內聯是正交的」是什麼意思?
回答
如果兩件事情是「正交的」,這意味着它們是獨立的。在這種情況下,這意味着模板可以是內聯的,模板可以是非內聯的,非模板可以是非內聯的,並且非模板可以是內聯的。
我認爲這個問題的出現是因爲兩者之間存在一些表面相似性,因爲兩者應該出現在使用它們的翻譯單元中,換句話說,它們的定義(實體,實現方法)應該在.h文件。但是,從第一段可以看出,模板和內聯的確是正交的。 HTH
另請注意,在代數正交意味着(非正式)垂直,線性獨立:) – 2010-11-02 12:57:58
我會說,垂直是正交性的一種特殊情況(在特殊情況下)。 – 2010-11-02 13:32:10
當然,這就是爲什麼我非正式提及** – 2010-11-02 13:37:30
鬆散地說,這意味着他們不會改變彼此的行爲。例如。內聯意味着同樣的事情,無論它是用於模板函數還是普通函數。
您正在查看的是(部分)關於計算機科學中「正交」的定義,你可以在答案here中找到。
這意味着某件事物可以是一個模板或不參考它是否是內聯的。它們是具有不同目的的不同概念。
然而,我認爲這個詞是誤導性的,因爲這兩個概念確實以非平凡的方式相互作用。例如,非內聯函數通常不能在.h文件中聲明,但如果它是一個函數模板,它通常可以。所以template
和inline
大多是但不是完全正交的。
- 1. $ html是什麼意思在html模板?
- 2. * this = NULL在模板類中的方法內是什麼意思?
- 3. 什麼?在C#中是什麼意思?
- 4. C中##是什麼意思?
- 5. c。宏中的`.`和`*`是什麼意思?
- 6. 剝離ASCII模板是什麼意思?
- 7. 是什麼意思:是什麼意思?
- 8. {和}在參數內是什麼意思?
- 9. extern模板是一個c + + 11擴展是什麼意思?
- 10. > +和> - 是什麼意思在C#
- 11. 在c/C++中,^ =是什麼意思?
- 12. '。'是什麼意思?和'..'的意思是在Matlab dir()命令中?
- 13. 模板中的=和%h2的%部分是什麼意思?
- 14. 「模糊不清」是什麼意思?PATTERN是什麼意思?
- 15. '「」''在C#中的「」+ ex'是什麼意思?
- 16. 什麼是(int)在c#中的意思?
- 17. 什麼是connection.Dispose()在C#中的意思?
- 18. SURF的min_dist和max_dist是什麼意思,FlannMatcher是什麼意思
- 19. 鏈內是什麼意思?
- 20. 這是什麼##模式在C語言中的意思是
- 21. 是什麼意思,在Python中是什麼意思?
- 22. **是什麼意思,C?
- 23. %* c是什麼意思?
- 24. 這是什麼意思? [c#]
- 25. 這是什麼意思-c
- 26. 這是什麼意思 - C#
- 27. cmd/C是什麼意思?
- 28. 在c#中'T:class'是什麼意思?
- 29. - >在C++中是什麼意思?
- 30. 在c#中,它是什麼意思'??'?
你爲什麼不問問說話的人(sbi)? http://stackoverflow.com/questions/4077609/overloading-output-stream-operator-for-vectort/4077666#4077666 – 2010-11-02 12:49:05
通常,「正交」用於非正式地表示「獨立,無關,無關」。最終從一個事實中推導出來,即一組正交向量通常被看作向量空間的基礎,並且是「線性獨立的」,而一個更準確的隱喻(因爲正交性是線性獨立的充分但不是必要的條件),是一口一口。 – 2010-11-02 12:51:45
你甚至沒有準確地引用他。 「templatizing」!=模板,和「內聯」!=內聯。 – 2010-11-02 22:28:46