|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.11.2015, 20:12 | #1 |
Форумчанин
Регистрация: 03.08.2013
Сообщений: 208
|
Поддержка nullptr в g++. Как её определить в коде?
Добрый вечер (по Омску)!
Я чаще использую древнюю ОС ASPLinux 14.0 Cobalt, в которой ещё нет поддержки nullptr. Мой компьютер сильно тормозит с современными ОС. Пытаюсь написать программу, хотя получается очень тяжело. Ещё не разу не доводил свои поделки на C++ до логического завершения. Так дурью маялся. У меня компилятор g++. Интересует, как определить, поддерживает ли компилятор этот МЕТОД(? или что это вообще)? К примеру, через #ifdef. Я к тому, что хоть и пользуюсь старой ОС, хочу написать полноценное современное приложение, которое в новом g++ имело бы возможность очищать динамическую память более безопасным способом. И если можно приведите пример в Makefile и в самом коде c++. Последний раз редактировалось chipside; 11.11.2015 в 20:14. |
11.11.2015, 21:28 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
nullptr это не метод и он не дает "возможность очищать динамическую память более безопасным способом. Это упрощенно null для указателей.
В гцц он поддерживается с версии 4.6. Если у вас выше, то включайте опцию на 0х или с++11 и вперед. |
11.11.2015, 21:39 | #3 |
Форумчанин
Регистрация: 03.08.2013
Сообщений: 208
|
А что это такое? Если не метод. Когда в g++ просто удаляешь массивы, то всё равно элементы могут содержать неочищенные данные. nullptr их очищает. Можно, конечно пройтись циклом по каждому, но всё же хотелось заложить в код, что-то типа #ifdef __nullptr или что-то в этом роде.
|
11.11.2015, 21:42 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Вы о чем? Покажите свой магический код удаления массивов с помощью nullptr что ли.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
11.11.2015, 21:55 | #5 |
Форумчанин
Регистрация: 03.08.2013
Сообщений: 208
|
|
11.11.2015, 21:57 | #6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Во-первых, там один знак =, иначе это сравнение
Во-вторых, вы просто затираете указатель, а данные не факт. Могли бы написать myMassive = 11111 |
11.11.2015, 22:06 | #7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну так можно и без nullptr написать myMassive = 0
Но это делают не для того чтоб что-то удалить магическим образом, а скорее для удобства/безопасности, чтоб не обратиться случайно к указателю после удаления (ну точнее чтоб явно заметить, что это произошло) и т.п. А вообще лучше не управлять самому памятью без необходимости. Использовать STL контейнеры, RAII, smart-указатели и т.д.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
11.11.2015, 22:08 | #8 |
Форумчанин
Регистрация: 03.08.2013
Сообщений: 208
|
Да. Пожалуй таки один знак равно. Наверное источник, в который я смотрел, когда писал код был некорректен. А я не проанализировал как следует другие варианты. Так всё же, по поводу самого главного вопроса у вас есть ответ? Можно ли использовать в данном контексте #ifdef и как, учитывая, что пользователи могут использовать разные стандарты Си плюс плюс, а значит и разные ключи.
|
11.11.2015, 22:11 | #9 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Вы правда хотите писать
Код:
Чот это извращение какое-то. Проще тогда только второй вариант оставить.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
11.11.2015, 22:25 | #10 |
Форумчанин
Регистрация: 03.08.2013
Сообщений: 208
|
можно написать что-то типа
Код:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
26|error: 'nullptr' was not declared in this scope| | taras-proger | Общие вопросы C/C++ | 2 | 08.09.2015 14:02 |
Определить по коду алгоритм сортировки и исправить специально допущенные в коде ошибки ( Turbo Delphi ) | Just-Joni | Помощь студентам | 0 | 26.12.2013 12:24 |
Не получается найти ошибку в коде нужно определить размеры дисков C++ Borland | kolyok333 | Помощь студентам | 4 | 15.01.2012 15:53 |
Cuda, openCL: как определить, есть ли поддержка | xpu | Visual C++ | 1 | 27.08.2011 03:36 |
Поддержка казахского языка. Как? | eremin | Общие вопросы Delphi | 1 | 01.12.2007 06:30 |