Using gcc-4.1.1. Info says variable-length array is supported in c++ mode, but doesn't seem to work:
#include <boost/range.hpp> #include <vector> template<typename in_t> void F (in_t const& in, int size, int x[size]) {} void G (std::vector<int> const& in, int size, int x[size]) {} int main () { std::vector<int> i (10); int x (10); F (i, boost::size (i), x); G (i, boost::size (i), x); } g++ -c Test.cc -I /usr/local/src/boost.cvs Test.cc:5: error: ‘size’ was not declared in this scope Test.cc:7: error: ‘size’ was not declared in this scope Test.cc: In function ‘int main()’: Test.cc:12: error: no matching function for call to ‘F(std::vector<int, std::allocator<int> >&, size_t, int&)’ Test.cc:7: error: too many arguments to function ‘void G(const std::vector<int, std::allocator<int> >&, int)’ Test.cc:13: error: at this point in file