0 / 0 / 0
Регистрация: 31.10.2019
Сообщений: 39
|
||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||
Что эффективнее по времени и нагрузке31.07.2020, 20:27. Показов 385. Ответов 5
Доброй ночи, благодарю за уделённое внимание, вопрос таков:
У меня есть определенный класс в котором this не может быть равен nullptr, потому что этот this используется для получение данных в памяти к примеру
полный код
0
|
31.07.2020, 20:27 | |
Ответы с готовыми решениями:
5
что эффективнее? Что эффективнее? Что эффективнее? Что эффективнее? |
0 / 0 / 0
Регистрация: 31.10.2019
Сообщений: 39
|
|
31.07.2020, 20:37 [ТС] | 3 |
Croessmah, Поверь, я бы не стал писать если б не было исключения с ошибков this is nullptr )
0
|
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
31.07.2020, 20:39 | 4 | |||||
это - бесссмысленная проверка, потому что this не может быть равен нулю.
оптимизирующий компилятор может удалить проверку из кода за ненадобностью. например: https://rextester.com/RECLTT65411
Код
312260551/source.cpp: In member function ‘void some::foo() const’: 312260551/source.cpp:8:9: warning: nonnull argument ‘this’ compared to NULL [-Wnonnull-compare] if(!this) ^~ когда this внезапно оказался равен нулю. приведенная выше ситуация с разыменовыванием нулевого указателя - UB, которой в принципе не должно возникать в реальном коде. итого: нет смысла думать: как лучше сделать проверку на ситуацию которой быть не должно. есть смысл подумать: как сделать так, что бы ситуация которой быть не должно, не смогла возникнуть.
0
|
Неэпический
|
|
31.07.2020, 20:39 | 5 |
Saaler, это значит, что у тебя где-то в коде вызывается функция-член через нулевой указатель, что как бы уже является ошибкой и исправлять её нужно там, а не городить нерабочие костыли здесь.
0
|
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
31.07.2020, 20:40 | 6 |
0
|
31.07.2020, 20:40 | |
31.07.2020, 20:40 | |
Помогаю со студенческими работами здесь
6
Vector::swap и std::move - что эффективнее? Что эффективнее SEO или Директ (Бегун, Adwords) Что быстрее/эффективнее malloc/realloc или new/delete? Кулер на северный мост или обдув сбоку? Что эффективнее? При нагрузке в играх или вообще нагрузке многозадачностью, компьютер уходит в перезагрузку Ошибка при нагрузке (предполагаю что на видеокарту) перезагрузка компьютера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO
/ / https:/ / leetcode. com/ studyplan/ top-interview-150/
package topInterview
. . .
|
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
|
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
|
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
|
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
|
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации.
Исполнитель Чертежник работает на координатной плоскости, где может. . .
|
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
|
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
|
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
|
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
|
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
|
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
|