Следующий код компилируется и запускается на MSVC2010, должен ли он?
const std::string s = "foo";
std::string s2(std::move(s));
Я могу понять, почему это, вероятно, ничего не сломает, поскольку, если я возьму внутренние элементы, я должен знать, что никто не будет использовать его, поэтому не важно, что я бросаю const. Однако как насчет того, где компилятор реализует объекты const в ROM (во встроенном приложении)? Будет ли переход превращаться в копию? Или MSVC должен дать мне ошибку?