I have declared two functions:
template<typename T>
void foo(T& in) { cout << in; }
void foo(bool& b) { cout << "Bool:" << (b ? "True" : "False");}
I am calling the function like this:
bool var = false; foo(var);
I know I can write test code. But if this is a compiler dependent choice, writing test code will never have full coverage.