Is there a difference between a subroutine and a function in C++?