http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54538
Markus Trippelsdorf <markus at trippelsdorf dot de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |markus at trippelsdorf dot | |de --- Comment #5 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-09-10 14:13:29 UTC --- Both icpc and clang++ reject the testcase: clang: pr54538.ii:283:13: error: no matching function for call to 'range' auto r9 = range (v9); ^~~~~ pr54538.ii:277:66: note: candidate template ignored: substitution failure [with Rn = std::vector<int, std::allocator<int> > &]: non-type template argument is not a constant expression template <class Rn> eIF <is_range <Rn> (), chain_range <Rn &&>>range (Rn && rn) ~~~~~~~~ ^ pr54538.ii:284:14: error: no matching function for call to 'range' auto rr9 = range (mk_v9 ()); ^~~~~ pr54538.ii:277:66: note: candidate template ignored: substitution failure [with Rn = std::vector<int, std::allocator<int> >]: non-type template argument is not a constant expression template <class Rn> eIF <is_range <Rn> (), chain_range <Rn &&>>range (Rn && rn) icpc: ... pr54538.ii(283): error: no instance of function template "std::range" matches the argument list argument types are: (std::vector<int, std::allocator<int>>) auto r9 = range (v9); ^ pr54538.ii(284): error: no instance of function template "std::range" matches the argument list argument types are: (std::vector<int, std::allocator<int>>) auto rr9 = range (mk_v9 ());