我想检查两种类型是否属于同一模板。作为示例,我希望返回以下代码片段true,因为尽管内部元素具有不同类型,但两个对象都是向量。
在编译时进行检查很重要(这就是该函数为 constexpr 的原因)。
#include <iostream>
#include <type_traits>
#include <vector>
template <typename Container1, typename Container2> constexpr bool CheckTypes(Container1 c1, Container2 c2)
{
return std::is_same<Container1,Container2>::value;
}
int main()
{
std::vector<int> v1(100,0);
std::vector<double> v2(100,0);
std::cout << CheckTypes(v1,v2);
}
Run Code Online (Sandbox Code Playgroud)