При использовании разных библиотек я всегда обнаруживал, что каждая из них имеет собственный тип для одного и того же «сущности реального слова».
Скажем, у меня есть проект, использующий точки в трех измерениях, я просто использую алгоритмы из OpenCv и PCL (библиотека облаков точек). Я оказался с этими типами для точки:
- Point3_ для OpenCv
- PointXYZ для PCL
- Point3d мой пользовательский тип
Теперь у меня есть алгоритмы, которые я написал для своего Point3d, но я также хочу использовать алгоритмы из этих библиотек. Преобразование каждой точки в большом наборе из одного типа в другой, туда и обратно, требует памяти и времени.
Что было бы лучшим способом иметь какую-то абстракцию вокруг этого?
float
s/double
s один за другим. Так что злойreinterpret_cast
может подойти. В противном случае, если все они имеют[]
-оператор, просто сделайте свои шаблоны алгоритмов (и, возможно, сами предоставьте некоторые фундаментальные вещи, такие какnormalize
...). - person Christian Rau   schedule 29.11.2012