|
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 15
|
||||||
Перегрузка функции через макрос с зависимостью от количества и типа переданных параметров еще и с вариаблик02.07.2020, 01:35. Показов 1387. Ответов 16
Метки нет (Все метки)
Здравствуйте.
На чистоту, я не осилил макросы. Провел весь день, чтобы попытаться вызвать функцию с помощью макроса в зависимости от количества и типа переданных параметров. Прошу помощи. Код с тестовой функцией на которой можно проводить эксперименты:
Начинал с этого треда, Дизайн и эволюция: перегрузка макросов дальше пошёл бродить по форуму и интернету. Но увы.
0
|
||||||
| 02.07.2020, 01:35 | |
|
Ответы с готовыми решениями:
16
Считывание параметров, переданных через командную строку
Функция с переменным числом параметров, как узнать кличество переданных параметров? |
|
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
|
||
| 02.07.2020, 21:15 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 15
|
|||||||||||
| 03.07.2020, 15:02 [ТС] | |||||||||||
|
Получилось вот так.
Интересуют ошибки которые будет выдавать компилятор. через #define DEBEG_LEVEL 0 можно включить разный уровень отладки. Если запустить ничего не меняя, должен получится вот такой вывод
0
|
|||||||||||
|
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
|
|||||||
| 03.07.2020, 21:45 | |||||||
|
Компилил на TDM-GCC 4.9.2
0
|
|||||||
|
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 15
|
||||||||
| 03.07.2020, 22:50 [ТС] | ||||||||
|
Этого можно избежать, если каждый вызов брать в #pragma
Но способа пока найти не могу.. Добавлено через 6 минут Сам компилировал GCC 7.5.0. Вот бы еще на MSVC и MinGW проверить. Есть желающие?
0
|
||||||||
|
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
|
|||||||
| 04.07.2020, 00:43 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 15
|
|||||||
| 04.07.2020, 01:01 [ТС] | |||||||
|
Но у меня было две цели 1) Это сделать обязательным параметром L_1 и (полу)обязательным параметр L_2 2) Уйти от форматированной строки. Зачем? Ну вот захотелось.. сделать человеческий интерфейс, а не городить форматированную строку для 3-х параметров, а потом еще одну такую же для вывода print. Поставленную задачу считаю решенной. А если есть другие предложения, то сначала проверьте их на прохождения этих тестов.
0
|
|||||||
|
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
|
|
| 04.07.2020, 01:15 | |
|
0
|
|
|
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
|
|
| 04.07.2020, 11:49 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 15
|
|||
| 04.07.2020, 15:26 [ТС] | |||
|
Пожалуйста, читайте внимательнее
0
|
|||
|
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
|
|||||||||||||
| 04.07.2020, 18:33 | |||||||||||||
0
|
|||||||||||||
|
|
|||
| 04.07.2020, 20:04 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 15
|
|||||||
| 04.07.2020, 20:37 [ТС] | |||||||
|
Давайте по порядку.
В-третьих он однотипный и большая из них часть это тестовый вывод. И вполне себе реализовал. И последнее. Предложить ТСу вещь Б, когда он точно уверен что ему нужна вещь А или на крайний случай а, но которая имитирует поведение первой. Классика форумов. Если Вы научились обходить форматированную строку указателями, это не значит что теперь это в каждой бочке затычка. Иногда внешний вид важнее, чем лишние такты.
0
|
|||||||
|
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
|
|||
| 04.07.2020, 23:49 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 15
|
|||
| 05.07.2020, 00:24 [ТС] | |||
|
Сам понимаю что это уже не возможно, но может и не достаточно осведомлен. Добавлено через 32 минуты Или вопрос поставить ребром. Почему _Generic ругается на каст переменных?
0
|
|||
|
|
||||
| 05.07.2020, 12:14 | ||||
|
0
|
||||
|
656 / 409 / 76
Регистрация: 21.09.2008
Сообщений: 1,406
|
||
| 08.07.2020, 17:27 | ||
|
0
|
||
| 08.07.2020, 17:27 | |
|
Помогаю со студенческими работами здесь
17
Передача параметров во виртуальные функции, перегрузка Проверка переданных параметров Обработчик параметров, переданных методом GET Обработка параметров переданных из формы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|