Most simple way is to let the compiler decide
If you have a book to read up template specialisation the correct solution will jump into your face.
What syntactical constraints does a templated function have to fulfill? Which of these functions meet the requirements?
And no, itīs not B.
Understanding the meaning of the syntax, and hence the syntactic constraints (which will reveal why C is correct) would help you more than merely adopting the 'because this web page says so' approach. I guess what I was really asking is, technically, why are A, B, D and E wrong, and why C is correct.