Zero-length arrays do not exist in C++. However if they did, here is how you could handle the case:
template
struct disable_if;
template
struct disable_if
{
typedef T type;
};
template
typename disable_if::type foo(T(&c_array)[N])
{
std::cout << "inside template\n";
}