我有一個對象與此類型的模板:C++初始化對象與非const可變模板
RTree<int, float, 2, float> tree;
第三個參數是尺寸我的樹將具有的數量。每次創建新樹時,我都希望這樣做。我怎樣才能用每次都改變的變量來替換數字?編譯器用非const變量拋出一個錯誤。
我有一個對象與此類型的模板:C++初始化對象與非const可變模板
RTree<int, float, 2, float> tree;
第三個參數是尺寸我的樹將具有的數量。每次創建新樹時,我都希望這樣做。我怎樣才能用每次都改變的變量來替換數字?編譯器用非const變量拋出一個錯誤。
您不能在運行時更改模板參數。
如果你的目的是在與樹的每一個新的減速度來改變樹的維數的編譯時間那麼你可以這樣做:
RTree<int, float, __COUNTER__, float> tree;
雖然這將是,在我看來,使用有限。
如果你的目的是在運行時改變它,然後再考慮保持在RTree
類或通過構造函數參數的數量,以便您可以指定樹的尺寸。
感謝您的回答。我將在構造函數中創建一個參數。我以爲我在做一些錯誤的事情,因爲我正在使用一個庫。 – TheShadow
這不是模板的工作原理,也不是以這種方式完成的。它們用於編寫獨立於任何特定的代碼類型而不是值。你說你
「希望這每一個新的樹中創建時間而改變」
所以當時只是給構造函數,它接受一個整數參數,並從那裏。
你根本無法做到這一點。我認爲你需要提出一個不同的問題。 – juanchopanza
你想在運行時改變它嗎?這是不可能的,您需要在編譯時運行程序之前指定模板非類型參數*。 – vsoftco
每次創建不同的對象取決於我讀取的文件。問題是文件每次都有不同數量的維度,所以我每次都需要一個不同的樹。有什麼我可以做的嗎? – TheShadow