我正在研究模板類的代碼庫。它只是頭文件(沒有.cpp文件)。我想隱藏實現並提供一個共享庫和一些只包含聲明的頭文件。不幸的是聽起來沒有任何意義。由於沒有編譯代碼,那麼在這樣的共享庫中會有什麼?嘗試在編譯後從頭文件中刪除定義,會導致未定義的引用。有沒有辦法強制編譯器在dll或共享庫中發佈對象,而無需顯式實例化模板類?將C++頭僅模板編譯爲共享庫
4
A
回答
5
3
模板實現需要在編譯時知道。這就是爲什麼你不能將實現與聲明分開的原因。所以如果你想擁有模板的優點,那麼傳遞你的頭文件是沒有辦法的。
相關問題
- 1. 將僅頭文件模板庫編譯爲共享庫?
- 2. 爲python編譯共享庫
- 3. 編譯共享庫
- 4. 編譯共享庫(舊標準)與C++ 11共享庫
- 5. 編譯python到共享庫
- 6. 解決編譯共享庫
- 7. 當編譯共享庫
- 8. 編譯共享模式
- 9. 爲Linux重新編譯共享Android庫
- 10. 將coretuils編譯爲共享對象?
- 11. 高效共享預編譯頭文件
- 12. 使用Android NDK將共享庫和靜態庫編譯到共享庫中
- 13. 將c/C++與Java本地代碼集成爲共享庫(由gcj編譯)
- 14. C++模板編程爲在編譯時
- 15. 使用GCC的共享庫項目的預編譯頭文件
- 16. 共享庫中的cmake預編譯頭文件
- 17. 在Mac上編譯GhostScript 9.07共享庫
- 18. 缺少共享庫(g ++編譯)
- 19. 如何用共享庫編譯gcc?
- 20. 編譯共享庫時出錯
- 21. 使用g ++動態共享庫編譯
- 22. MVC4共享模板
- 23. 構建共享庫,將頭文件更新到編譯器/系統目錄
- 24. C++模板+共享庫=>模糊調用
- 25. 如何將用戶編譯的共享庫的共享庫鏈接到Debian上的C++應用程序?
- 26. C++頭只模板庫
- 27. 共享緩存共享模板?
- 28. c + +編譯模板錯誤
- 29. 將共享庫鏈接到共享庫
- 30. 僅編譯Handlebars.js模板的一部分
不,只是運送標題。 – 2012-07-22 17:22:38
這是不可能的。 – Jichao 2012-07-22 17:24:01
我認爲你可以將你的模板分割成h和cpp文件,並且有一個共享庫來顯式實例化所有可能的情況。現在您可以將其發送給您的客戶,並且可以鏈接到它。他們可能無法爲新類型實例化您的模板,但可以使其工作 – 2012-07-22 17:25:47