B
BRG
I know that default template arguments cannot be used in function
templates but are default function parameters legal?
That is, is this:
----------------------------------
#include <functional>
template<class T, class C> bool count(T x[], C cmp = std::less<T>())
{
for(int i = 0; i < 9; ++i)
if(cmp(, x[i + 1]))
return true;
return false;
}
----------------------------------
legal C++ code?
count(x, std::less<int>()); // compiles ok, but
count(x); // gives "could not deduce template argument for 'C'"
Brian Gladman
templates but are default function parameters legal?
That is, is this:
----------------------------------
#include <functional>
template<class T, class C> bool count(T x[], C cmp = std::less<T>())
{
for(int i = 0; i < 9; ++i)
if(cmp(, x[i + 1]))
return true;
return false;
}
----------------------------------
legal C++ code?
count(x, std::less<int>()); // compiles ok, but
count(x); // gives "could not deduce template argument for 'C'"
Brian Gladman