C++ 如何获取和使用变量的类型?
我正在使用OpenCV编写一个函数过程Mat。我的问题是,当输入矩阵的类型改变时,我需要相应类型的ptr 例如:C++ 如何获取和使用变量的类型?,c++,opencv,C++,Opencv,我正在使用OpenCV编写一个函数过程Mat。我的问题是,当输入矩阵的类型改变时,我需要相应类型的ptr 例如: 对于CV_8UC1,我需要ptr 对于CV_16UC1我需要ptr 但是我不能使用Mat.type(),因为它只返回enum的int 我曾想过使用switch case,但它相当冗长。有什么简洁的方法吗?简短的回答:没有。问题是Mat中的数据类型在编译时不知道,而是在运行时确定的。你需要像开关盒这样的东西。为了不必多次编写相同的函数,模板函数非常有用,因此开关盒只会成为调用正确类型的
CV_8UC1
,我需要ptr
CV_16UC1
我需要ptr
Mat.type()
,因为它只返回enum
的int
我曾想过使用switch case,但它相当冗长。有什么简洁的方法吗?简短的回答:没有。问题是Mat中的数据类型在编译时不知道,而是在运行时确定的。你需要像开关盒这样的东西。为了不必多次编写相同的函数,模板函数非常有用,因此开关盒只会成为调用正确类型的模板函数的薄层。请为任务找到最佳类型,并将Mat转换为该类型。