I read that they are conceptually equal. In practice, is there any occasion that
foo(T t)
is preferred over
foo(const T&
In addition, foo(T t) is normally used when T is a simple type (int, bool, etc).