I have a class that has several template functions, designed to take a std::vector<T>& parameter, where T is intended to be a boost::tuple type. the class is defined in a .h file, and the code is in a .cpp file. when I try to call the function with a vector of tuples, the linker complains about an undefined reference to a function with the parameter types I gave it. my question is: does the code for the template functions need to be in the .h file with the rest of the class definition, or can it be the way I have it now?