template<typename T>
const T& const_wrap(const T& v) { return v; }

for(auto &i : const_wrap(v))

要するにconstへキャストしとけばいいんだろ?