I have: #include <cstdlib> #include <vector> using namespace std; int main() { auto a = -SOME_CONST_MAX; vector<auto> myVec {a, a, a, a}; } I don't know the type of the SOME_CONST_MAX but I want to make a vector of the type of -SOME_CONST_MAX . I assumed vector<auto> would work as it will deduce from type of a . I'm getting these errors running: g++ -std=c++14 main.cpp main.cpp:9:9: error: invalid use of ‘auto’ vector<auto> myVec {a, a, a, a}; ^ main.cpp:9:13: error: template argument 1 is invalid vector<auto> myVec {a, a, a, a}; ^ main.cpp:9:13: error: template argument 2 is invalid main.cpp