Я новичок в разработке iPhone и цель C
.
Я использовал NSUserDefaults
для хранения некоторых значений в приложении.
Но я не знаю, существует ли какое-либо ограничение для хранения значений в NSUserDefaults
.
Может ли кто-нибудь помочь мне это узнать.
Заранее спасибо.
-121--630024- Я просто не до конца понял логику std:: move ()
.
Сначала я погуглил, но кажется, что существуют только документы о том, как использовать std:: move ()
, а не как работает его структура.
Я имею в виду, я знаю, что это за функция-член шаблона, но когда я смотрю на определение std:: move ()
в VS2010, это все еще сбивает с толку.
Ниже приводится определение std:: move ().
template<class _Ty> inline
typename tr1::_Remove_reference<_Ty>::_Type&&
move(_Ty&& _Arg)
{ // forward _Arg as movable
return ((typename tr1::_Remove_reference<_Ty>::_Type&&)_Arg);
}
Что странно для меня прежде всего параметр, (_Ty&& _Arg), потому что когда я вызываю функцию, как вы видите ниже,
// main()
Object obj1;
Object obj2 = std::move(obj1);
он в основном равен
// std::move()
_Ty&& _Arg = Obj1;
Но, как вы уже знаете, вы не можете напрямую связать LValue с RValue ссылки, что заставляет меня думать, что это должно быть так.
_Ty&& _Arg = (Object&&)obj1;
Однако это абсурдно, потому что std:: move () должен работать для всех значений.
Поэтому я думаю, чтобы полностью понять, как это работает, я должен взглянуть на эти структуры тоже.
template<class _Ty>
struct _Remove_reference
{ // remove reference
typedef _Ty _Type;
};
template<class _Ty>
struct _Remove_reference<_Ty&>
{ // remove reference
typedef _Ty _Type;
};
template<class _Ty>
struct _Remove_reference<_Ty&&>
{ // remove rvalue reference
typedef _Ty _Type;
};
К сожалению, это все еще так же запутанно, и я не понимаю этого.
Я знаю, что это все из-за отсутствия у меня базовых навыков синтаксиса о C++. Я хотел бы знать, как эти работы тщательно и любые документы, которые я могу получить в интернете, будут более чем приветствоваться. (Если вы можете просто объяснить это, это будет потрясающе тоже).