powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Макросы в Lisp стиле, возможно ли это: (+ , (-
6 сообщений из 31, страница 2 из 2
Макросы в Lisp стиле, возможно ли это: (+ , (-
    #39284263
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, что вызов ф-ции с переменным числом параметров не инлайнится.

А вот шаблон разворачивается в пыль на простых случаях.
...
Рейтинг: 0 / 0
Макросы в Lisp стиле, возможно ли это: (+ , (-
    #39284265
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivА почему тебе именно макрос нужен ?
Чем функция не устраивает ?

потому что Pure C не поддерживает дефолтовые параметры функций.

хотя C++ код вида

Код: plaintext
1.
2.
3.
4.
template <class type> 
type add(type a = 0, type b = 0, type c = 0, ...  ) {
  return a + b + c + d + ;
}



отлично работает - компилятор выбрасывает передачу ненужных параметров, умело суммирует заранее всякое, инлайнит и т.п.

я, посмотрев в дизассемблер, даже зауважал C++.. на время.


хотя в моем случае нужно скорее

Код: plaintext
1.
return safe_add(safe_add(safe_add(a, b), c, d); 


и тут оно само плохо работает, нужно подсказывать через if-ы. уважение резко на этом закончилось.
...
Рейтинг: 0 / 0
Макросы в Lisp стиле, возможно ли это: (+ , (-
    #39284273
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nojavaAnatoly Moskovskyпропущено...

Ну, оно может короче, но ничем не лучше тех макросов по читаемости, т.к. надо разбираться что там происходит. Например tmp там только для побочных эффектов.
Ну и только свежие компиляторы с С++14 такое проглотят.
А то что я привел - это чистый С++11.


интереса ради решил покомпилировать ваши закорючки, сравнить дизассемблер.
и? оба ваших чудаковых "решения" в принципе не понимают вызов функции, ибо тупо constexpr

приплыли.

парни, вы серьезно? какой смысл делать variadic param ADD макрос, чтоб он принимал и выдавал только константу?
в задаче compile time only не ставилось.
Ладно ты написать функцию сложения не может, даже ладно понять не можешь, ну не дано тебе, но использовать то должен уметь!
http://ideone.com/6qnNLS
Работает и на MSVS2015 и на старом gcc 4.7.3.
...
Рейтинг: 0 / 0
Макросы в Lisp стиле, возможно ли это: (+ , (-
    #39284274
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyMasterZivА почему тебе именно макрос нужен ?
Чем функция не устраивает ?
Не верит в инлайн )))
Это как, тело инлайн функций не хочет в хедер класть, а макросы в хэдер хочет?
...
Рейтинг: 0 / 0
Макросы в Lisp стиле, возможно ли это: (+ , (-
    #39284275
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася УткинЭто как, тело инлайн функций не хочет в хедер класть, а макросы в хэдер хочет?
Неисповедимы пути профессионалов.
Нам, не участвовавшим в проектах мирового уровня - не понять )))
...
Рейтинг: 0 / 0
Макросы в Lisp стиле, возможно ли это: (+ , (-
    #39284293
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyMasterZivА почему тебе именно макрос нужен ?
Чем функция не устраивает ?
Не верит в инлайн )))

ну ты всю интригу сразу убил...
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Макросы в Lisp стиле, возможно ли это: (+ , (-
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]