id summary reporter owner description type status milestone component version severity resolution keywords cc 1477 boost::sizer declaration ill-formed anonymous Thorsten Ottosen "Since the acception of boost::range there exists the file /range/detail/sizer.hpp (I think it was taken from still older history) which contains two overloads of sizer, which are written as (I provide only the first overload): template< typename T, std::size_t sz > char& sizer( const T BOOST_RANGE_ARRAY_REF()[sz] )[sz]; This declaration is ill-formed, because it corresponds to a function that returns an array. The declaration should be fixed to say template< typename T, std::size_t sz > char (& sizer( const T BOOST_RANGE_ARRAY_REF()[sz] ) )[sz]; (similarily for the other overload). Interestingly, the declaration is *not* contained in some detail(s) namespace, but you might consider this file to be part of the implementation. In this case another option could be to remove this file, although I would regret this choice. Note that boost is often quoted in the internet (including this sizer facility!) so it seems better to fix the declaration. " Bugs closed To Be Determined range Boost 1.34.1 Problem fixed