Вопросы с тегом «semantics»

Изучение значения применительно к языкам программирования

1706
Что такое семантика перемещения?

Я только что закончил слушать радио- интервью подкаста Software Engineering со Скоттом Мейерсом о C ++ 0x . Большинство новых функций имело смысл для меня, и сейчас я на самом деле рад C ++ 0x, за исключением одного. Я до сих пор не понимаю семантику перемещения ... Что это...

851
Какую часть Хиндли-Милнера вы не понимаете?

Я клянусь , там раньше была футболкой для продажи с участием бессмертных слов: Какая часть ты не понимаешь? В моем случае ответ будет ... все это! В частности, я часто вижу подобные обозначения в документах на Haskell, но я понятия не имею, что это означает. Я понятия не имею, какой отраслью...

763
push_back против emplace_back

Я немного сбит с толку относительно разницы между push_backи emplace_back. void emplace_back(Type&& _Val); void push_back(const Type& _Val); void push_back(Type&& _Val); Поскольку существует push_backперегрузка, принимающая ссылку на rvalue, я не совсем понимаю, для чего это...

630
Есть ли разница между «==» и «есть»?

Ответы на этот вопрос - работа сообщества . Отредактируйте существующие ответы, чтобы улучшить этот пост. В настоящее время он не принимает новые ответы или взаимодействия. Мой Google-фу подвел меня. В Python следующие два теста на равенство эквивалентны? n = 5 # Test one. if n == 5: print 'Yay!'...

435
C ++ 11 значения и путаница в семантике перемещения (оператор return)

Я пытаюсь понять rvalue ссылки и переместить семантику C ++ 11. В чем разница между этими примерами, и какой из них не будет делать векторные копии? Первый пример std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int>...

238
Что такое «rvalue reference для * this»?

На странице статуса C ++ 11 в Clang наткнулся на предложение под названием «ссылка на rvalue для * this» . Я прочитал довольно много о ссылках на rvalue и понял их, но я не думаю, что знаю об этом. Я также не мог найти много ресурсов в Интернете, используя термины. На странице есть ссылка на...

205
Может ли современный C ++ получить производительность бесплатно?

Иногда утверждают, что C ++ 11/14 может повысить производительность даже при простой компиляции кода C ++ 98. Обоснование обычно происходит в соответствии с семантикой перемещения, поскольку в некоторых случаях конструкторы rvalue генерируются автоматически или теперь являются частью STL. Теперь...

182
Каковы точные правила автоматической разыменования в Rust?

Я изучаю / экспериментирую с Rust, и при всей элегантности, которую я нахожу в этом языке, есть одна особенность, которая сбивает меня с толку и кажется совершенно неуместной. Rust автоматически разыменовывает указатели при вызове метода. Я сделал несколько тестов, чтобы определить точное...

167
количество против длины против размера в коллекции

Используя несколько языков программирования и библиотек, я заметил различные термины, используемые для общего количества элементов в коллекции. Наиболее распространенными, кажется length, countи size. например. array.length vector.size() collection.count Есть ли какой-либо предпочтительный термин...

149
логическое значение в выражении if

Сегодня я получил замечание о коде с учетом того, как я проверяю, является ли переменная истинной или ложной в школьном задании. Код, который я написал, был примерно таким: var booleanValue = true; function someFunction(){ if(booleanValue === true){ return "something"; } } Они сказали, что лучше /...

148
Зачем мне std :: переместить std :: shared_ptr?

Я просматривал исходный код Clang и нашел этот фрагмент: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Зачем мне std::moveэто std::shared_ptr? Есть ли смысл передавать право собственности на общий ресурс? Почему бы мне...

147
Что является противоположностью «разбора»? [закрыто]

Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Закрыто 6 лет назад . Locked . Этот вопрос и его ответы заблокированы, потому что вопрос не по теме, но имеет историческое значение. В настоящее время он не принимает новые ответы или взаимодействия. У меня есть...

141
Что я могу сделать с перемещенным объектом?

Определяет ли стандарт точно, что я могу делать с объектом после его перемещения? Раньше я думал, что все, что вы можете сделать с перемещенным объектом, - это уничтожить его, но этого было бы недостаточно. Например, возьмите шаблон swapфункции, определенный в стандартной библиотеке: template...

133
Как использовать настраиваемое средство удаления с членом std :: unique_ptr?

У меня есть класс с членом unique_ptr. class Foo { private: std::unique_ptr<Bar> bar; ... }; Bar - это сторонний класс, который имеет функцию create () и функцию destroy (). Если бы я хотел использовать std::unique_ptrс ним в отдельной функции, я мог бы сделать: void foo() {...

127
Когда в C ++ 11 сделать тип неподвижным?

Я был удивлен, что это не появилось в моих результатах поиска, я подумал, что кто-то спросил бы об этом раньше, учитывая полезность семантики перемещения в C ++ 11: Когда мне нужно (или это хорошая идея) сделать класс неподвижным в C ++ 11? (Причины, отличные от проблем совместимости с существующим...

127
Невозможно выйти из заимствованного контента / не может выйти из-за общей ссылки

Я не понимаю ошибки cannot move out of borrowed content. Я получал ее много раз и всегда решал ее, но никогда не понимал почему. Например: for line in self.xslg_file.iter() { self.buffer.clear(); for current_char in line.into_bytes().iter() { self.buffer.push(*current_char as char); }...