2014-10-18 108 views
-3

在使用點雲庫(PCL)的C++編碼中,我遇到了一個我不熟悉使用運算符<>的新代碼行。C++運算符「<" and ">」

pcl::io::OctreePointCloudCompression<pcl::PointXYZRGBA>* PointCloudEncoder; 

如果您注意到「< ..>」中的數據類型。我能不能在普通的編程結構中得到一些解釋,而不僅僅是在PCL中,這是如何不同的。

+1

https://en.wikipedia.org/wiki/Template_(C%2B%2B) – ajp15243 2014-10-18 06:32:33

+1

我猜''pcl'是一個命名空間,'pcl :: io'是一個命名空間。 'pcl :: io :: OctreePointCloudCompression'是'pcl :: io'命名空間中的類模板,'pcl :: PointXYZRGBA'是'pcl'命名空間中的類。該語法用於實例化類模板。 – 2014-10-18 06:34:10

+0

@RSahu謝謝,其實我對OctreePointCloudCompression類使用<>之後並不熟悉。但是我剛剛意識到它是分配模板類數據類型的一種方法。 – 2014-10-18 06:45:45

回答

1

符號<>不是運營商。它是模板的符號,也被稱爲通用性。

模板類爲您提供了一種在編譯時具有相同代碼並指定其數據類型的方法。你可以考慮例如數學庫。您可以使用<double><float>和您的庫一起決定要使用哪種類型(精度),而不是編寫可用於float和double的代碼。