The Code
--------

```
#include <iostream>
#include <type_traits>

template<typename T,
         typename = typename std::enable_if<std::is_pod<T>::value>::type
         >
T foo(T t) { return t; }

template<typename T>
void foo(T t) { }

int main()
{
    foo<int>(5);
}

```

The Error
---------

```
main.cpp: In function 'int main()':
main.cpp:14:15: error: call of overloaded 'foo(int)' is ambiguous
     foo<int>(5);
               ^
main.cpp:14:15: note: candidates are:
main.cpp:7:3: note: T foo(T) [with T = int; <template-parameter-1-2> = void]
 T foo(T t) { return t; }
   ^
main.cpp:10:6: note: void foo(T) [with T = int]
 void foo(T t) { }
      ^

```

The question
------------

Is it possible to solve The Error in The Code?