Hi, I'm writing to ask a C++ question, not specifically Boost-related, but this list is the best place I know. How can I write a function template, which has a parameter of the universal reference to a specific type? I can write a function template like this: template <typename T> void foo(T &&t) { // The primary template implementation. cout << "Primary: " << __PRETTY_FUNCTION__ << endl; } And so I can call this function with an expression of any value category, and any type, cv-qualified or not, like this: int main() { foo(1); int i = 1; foo(i); const int ci = 1; foo(ci); } In my code I need to provide different implementations of foo for different types (and these types are templated). How can I accomplish that? Best, Irek