Форум программистов, компьютерный форум CyberForum.ru

inline и define - C++

Восстановить пароль Регистрация
 
duran_duran
1 / 1 / 0
Регистрация: 11.01.2014
Сообщений: 20
18.01.2014, 22:43     inline и define #1
Почему использовать inline-функции лучше, чем использовать команду
препроцессора #define? Смысл в том, что лучше лишний раз не трогать препроцессор?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2014, 22:43     inline и define
Посмотрите здесь:

inline C++
C++ Как влияет inline и обертка(#ifndef #define #endif) .h файла на компоновщик.
C++ #define
C++ inline функции vs инструкции inline функций
define не C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
18.01.2014, 23:01     inline и define #2
Цитата Сообщение от duran_duran Посмотреть сообщение
Почему использовать inline-функции лучше, чем использовать команду
препроцессора #define? Смысл в том, что лучше лишний раз не трогать препроцессор?
Смысл в том, что inline - это средство языка С++, а функции препроцессора - это пережитки Си.
+ препроцессор небезопасен в плане побочных эффектов, если ему в качестве параметров будут передаваться не атомарные выражения, например, variable++
И вообще, сами поразмыслите - препроцессор это текстовая макро-замена, в то время как функция - это полнофункциональный (сорри за тавтологию) элемент языка.
Убежденный
Системный программист
 Аватар для Убежденный
14197 / 6212 / 985
Регистрация: 02.05.2013
Сообщений: 10,349
Завершенные тесты: 1
18.01.2014, 23:08     inline и define #3
Цитата Сообщение от duran_duran Посмотреть сообщение
Почему использовать inline-функции лучше, чем использовать команду
препроцессора #define?
А кто сказал, что лучше ?
Всяк метод хорош бывает в определенных обстоятельствах.
Вот BOOST_SCOPE_EXIT возьмите, к примеру. Сможете сделать
лучше на inline-функциях ?

http://www.boost.org/doc/libs/1_50_0...COPE_EXIT.html
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11834 / 6813 / 769
Регистрация: 27.09.2012
Сообщений: 16,886
Записей в блоге: 2
Завершенные тесты: 1
19.01.2014, 09:34     inline и define #4
Цитата Сообщение от duran_duran Посмотреть сообщение
Почему использовать inline-функции лучше, чем использовать команду
препроцессора #define?
можно и подобие шаблонов на препроцессоре настряпать, но нужно ли это делать, если шаблоны сами по себе имеются в языке.
Если есть возможность заменить макрос на встраиваемую функцию, то имхо, лучше заменить.
Да и ошибки искать в функции намного проще чем в макросе.
Yandex
Объявления
19.01.2014, 09:34     inline и define
Ответ Создать тему
Опции темы

Текущее время: 16:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru