В Стандарте C++ говорится, что элемент STL должен быть "конструируемым копией" и "присваиваемым". Другими словами, элемент должен быть в состоянии быть присвоенным или скопированным, и эти два элемента логически независимы. std::auto_ptr
не выполняет это требование.
Берут, например, этот код:
class X
{
};
std::vector > vecX;
vecX.push_back(new X);
std::auto_ptr pX = vecX[0]; // vecX[0] is assigned NULL.
Для преодоления этого ограничения необходимо использовать std::unique_ptr
, std::shared_ptr
или std::weak_ptr
интеллектуальные указатели или эквиваленты повышения, если у Вас нет C++ 11. Вот документация библиотеки повышения для этих интеллектуальных указателей.
Используйте селектор : visible в JQuery
В вашем случае, я думаю, вы хотите сделать:
$('#output').children(":visible").text()
Вместо того, чтобы скрывать диапазон, удалите элемент диапазона и сохраните ссылку на него. Когда пользователь нажимает на кнопку-переключатель, удалите другую и вставьте ту, на которую вы сохранили ссылку. Пользователь больше не сможет выбрать то, чего нет в DOM.