C++ 如何获取和使用变量的类型?

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

我正在使用OpenCV编写一个函数过程Mat。我的问题是,当输入矩阵的类型改变时,我需要相应类型的ptr

例如:

  • 对于
    CV_8UC1
    ,我需要
    ptr
  • 对于
    CV_16UC1
    我需要
    ptr
  • 但是我不能使用
    Mat.type()
    ,因为它只返回
    enum
    int


    我曾想过使用switch case,但它相当冗长。有什么简洁的方法吗?

    简短的回答:没有。问题是Mat中的数据类型在编译时不知道,而是在运行时确定的。你需要像开关盒这样的东西。为了不必多次编写相同的函数,模板函数非常有用,因此开关盒只会成为调用正确类型的模板函数的薄层。请为任务找到最佳类型,并将Mat转换为该类型。