Теперь всё зависит от клиентского кода, где должны быть перегружены ключевые функции (например, конструктор копирования и оператор присваивания), определяющие будет ли параметр lvalue или rvalue. Если параметр lvalue, то необходимо выполнить копирование. Если rvalue, то можно безопасно выполнить перемещение.
Какое-то сложное утверждение. Вроде как правильно, но ни один нормальный человек не поймет, в чем тут соль. После std::move параметр всегда будет rvalue. Но если объект не поддерживает перемещение, то этот параметр может привязаться и к lvalue-ссылке (то бишь, будет вызван конструктор копирования).
Это неправильная реализация std::move. Более того, этот код даже не компилируется, потому что а в данном контексте является lvalue и не может преобразоваться в rvalue. Правильный вариант:
...
move(T&& a)
{
return static_cast<typename std::remove_reference<T>::type&&>(a);
}
На мой взгляд, книга малоинформативная. Написано очень много, но по делу — лишь описание паттернов DI. Примеры бессмысленны (уже/скоро устареют, да и нагуглить их легко), а там это добрая половина страниц.
Книжка хорошо будет смотреться разве как подарок кому-нибудь.
А есть ли более автоматический (или по крайней мере «системный», что ли) способ передать контекст приложения? Через командную строку это как-то уж совсем не хорошо.
На мой взгляд, стоит просто заменить рабочий стол этим Windows Metro Desktop. На обычном рабочем столе у меня нет ничего, кроме двух виджетов — загрузка сети и корзина. Эти виджеты легко переделать в Live Tiles, и таком виде оно будет даже удобнее. Я был бы только за, если бы сейчас у меня место пустых обоев был Windows Metro Desktop.
Возвращаемый тип — IQueryable, поэтому, насколько я понимаю, все параметры OData будут транслированы в методы расширения этого IQueryable. Если ваша реализация работает на уровне БД — будет вам счастье.
Какое-то сложное утверждение. Вроде как правильно, но ни один нормальный человек не поймет, в чем тут соль. После std::move параметр всегда будет rvalue. Но если объект не поддерживает перемещение, то этот параметр может привязаться и к lvalue-ссылке (то бишь, будет вызван конструктор копирования).
Это неправильная реализация std::move. Более того, этот код даже не компилируется, потому что а в данном контексте является lvalue и не может преобразоваться в rvalue. Правильный вариант:
А что сейчас в топе? Я плеерами редко пользуюсь, просто интересно что сейчас самое по популярности/возможностям для видео/аудио.
Книжка хорошо будет смотреться разве как подарок кому-нибудь.
«Facebook предлагает возможность отправить Цукербергу 100 долларов»