clang++ can compile the following code without any error and warning, but g++ always gives me the error "no matching call ..."? Is it a bug of g++ or kind of extensions of clang++?
Code:
#include <algorithm>
int main()
{
struct utils
{
struct int_type
{
int m_value;
};
static int_type& transform_predicate(int_type& x)
{
x.m_value += 1;
return x;
}
};
static utils::int_type array[1048576];
int i;
for(i = 0; i < 1048576; i++)
array[i].m_value = i;
std::transform(array, array + 1048576, array, utils::transform_predicate);
return 0;
}