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

126
Переместить оператор присваивания и `if (this! = & Rhs)`

В операторе присваивания класса вам обычно нужно проверить, является ли назначаемый объект вызывающим объектом, чтобы не облажаться: Class& Class::operator=(const Class& rhs) { if (this != &rhs) { // do the assignment } return *this; } Вам нужно то же самое для оператора присваивания...

115
В чем преимущество использования ссылок пересылки в циклах for на основе диапазона?

const auto&было бы достаточно, если я хочу выполнять операции только для чтения. Однако я наткнулся на for (auto&& e : v) // v is non-const пару раз за последнее время. Это заставляет меня задуматься: Возможно ли, что в некоторых непонятных угловых случаях есть некоторое преимущество в...

114
Умные указатели: кому принадлежит объект? [закрыто]

Трудно сказать, о чем здесь спрашивают. Этот вопрос неоднозначный, расплывчатый, неполный, чрезмерно широкий или риторический, и на него нельзя разумно ответить в его нынешней форме. Чтобы прояснить этот вопрос и снова открыть его, посетите Справочный центр . Закрыт 8 лет назад . С ++ - это все о...

107
Когда язык считается языком сценариев? [закрыто]

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

107
Что такое «сахар» и «десахар» в контексте Java 8?

Я чаще слышу о «шугаринге» и «десугаривании» в Java 8, что означают эти термины? они концептуальные или синтаксические. Некоторый пример: Повторное повторение цикла по умолчанию для java Замечания о синтаксическом сахаре в компиляции....

105
Как std :: move () передает значения в RValues?

Я просто обнаружил, что не до конца понимаю логику std::move(). Сначала я погуглил, но похоже, что есть только документы о том, как использовать std::move(), а не о том , как работает его структура. Я имею в виду, что я знаю, что такое функция-член шаблона, но когда я смотрю на...

105
Утилиты семантических различий [закрыто]

Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow. Закрыт 5 лет назад . Уточните этот вопрос Я пытаюсь найти хорошие примеры семантических...

98
Почему мы копируем, а затем перемещаем?

Я где-то видел код, в котором кто-то решил скопировать объект и впоследствии переместить его в член данных класса. Это привело меня в замешательство, поскольку я думал, что весь смысл перемещения заключается в том, чтобы избежать копирования. Вот пример: struct S { S(std::string str) :...

98
Проверка на пустые массивы: count vs empty

Этот вопрос о том, « Как определить, пуст ли массив PHP », заставил меня задуматься над этим вопросом. Есть ли причина, которую countследует использовать вместо того, чтобы emptyопределять, пуст массив или нет? Лично я подумал, что эти 2 эквивалентны для случая пустых массивов, которые вы должны...

98
Вычисляемое свойство только для чтения против функции в Swift

Во введении в сеанс Swift WWDC descriptionдемонстрируется свойство только для чтения : class Vehicle { var numberOfWheels = 0 var description: String { return "\(numberOfWheels) wheels" } } let vehicle = Vehicle() println(vehicle.description) Есть ли какие-либо последствия для выбора...

95
Могу ли я инициализировать список векторов типа «только перемещение»?

Если я пропущу следующий код через мой снимок GCC 4.7, он попытается скопировать unique_ptrs в вектор. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Очевидно,...

93
Как обеспечить соблюдение семантики перемещения при росте вектора?

У меня есть std::vectorобъекты определенного класса A. Класс нетривиален и имеет конструкторы копирования и перемещение конструктор определены. std::vector<A> myvec; Если я заполню вектор Aобъектами (например, используя myvec.push_back(a)), вектор будет увеличиваться в размере, используя...

90
Когда лучше использовать Tuple вместо KeyValuePair?

Я обычно использую этот KeyValuePair<TKey,TValue>тип всякий раз, когда у меня есть данные, связанные с парами, в том смысле, что одно является ключом к другому. Если данные не связаны между собой, тогда Tuple<T1,T2>тип имеет больше смысла, и я бы пошел с этим. Теперь я просто прочитал...

89
Почему нет присваивания / конструктора перемещения по умолчанию?

Я простой программист. Переменные-члены моего класса чаще всего состоят из POD-типов и STL-контейнеров. Из-за этого мне редко приходится писать операторы присваивания или конструкторы копирования, поскольку они реализованы по умолчанию. Добавьте к этому, если я использую std::moveдля объектов,...

87
Семантика для сценариев Bash?

Больше, чем какой-либо другой язык, который я знаю, я «выучил» Bash с помощью Google каждый раз, когда мне что-то нужно. Следовательно, я могу собирать вместе небольшие скрипты, которые, кажется, работают. Тем не менее, я не очень знаю , что происходит, и я надеялся на более формальное введение в...