#include <vector>
#include <iostream>

//A type trait for a vector
template <typename T> struct Is_Vector                 { static const bool value = false; };
template <typename T> struct Is_Vector<std::vector<T>>    { static const bool value = true;  };


// A function that identifies whether the argument is a vector or not
template <typename Type>
bool isVector(Type object){
	return Is_Vector<Type>::value;
}

int main() {


	std::vector<int> vector;
	int integer;

	std::cout <<  std::boolalpha;
	std::cout <<  isVector(vector) << '\n';
	std::cout <<  isVector(integer) << '\n';

}