Просто так давно уже не занимался такими тривиальными задачами, забыл напрочь все
Помнится в С такая возможность есть, а вот в випере или в делфях хотяб - не помню
А как в C получить список аргументов? Помнится, там есть макросы va_list и прочие, но с их помощью даже количество аргументов нельзя узнать. Не говоря уж о типе.
ну и скромный до наивности вопрос - зачем это надо?
по нашим внутренним стандартам ни одна функция не должна менять количество и тип своих параметров
если такое потребовалось - должна быть создана новая функция, а старая - продолжить работать в старом режиме (либо в крайнем случае выводить предупреждающее сообщение о необходимости использовать такую-то новую функцию - это тогда, когда она сама не в курсе, откуда взять, к примеру, новый параметр, являющийся значением обязательной аналитики)
Это все понятно, Вы немного зашли вперед, углубились, так сказать в объектную модель
Если просто - решили таки хоть как - то реализовать систему ведения логов в наших доработках, чтобы пользователи (если появляются какие - то замечания или дополнения) не объясняли нам как и что не работает, а объяснили в общем что не так и прислали нам файл с логами.
Логи решили сделать в xml формате, написали требование, щас реализуем.
Ну и по вопросу: есть функция, которая, например называется lxml, и создает логи в формате xml (это сильно упрощенно). Решили сделать так, чтобы нам самим было удобно, т.е. одна функция на все случаи. В функции передаются определенные параметры, ну так вот, хотелось бы, чтобы эти параметры передавались не как стринги, опять же чтобы меньше писать, а как обычные переменные.
Получается, что эта функция может иметь разное количество параметров.
С одной стороны мы это уже реализовали, т.е. задаем значения по умолчанию в функции lxml, и те параметры которые не заданы не используем, однако хотелось бы еще упростить эту систему и не передавать в функцию lxml название фукнции, в котрой она была вызвана (это нужно для структуры xml файла).
Вот, собственно, и все, хотя получилось, наверно, не очень понятно.
Ну и если есть какие - нибудь варианты реализации этой задачи, пришлите пожалуйста ссылочку на инфу, о чем буду премного благодарен.
А если можно, может кто поделится, как вообще реализуется в разных организациях выявление ошибок.
Сами мы пытались через отладку випера делать, да тормозит он больно и настроек много делать нужно на каждый интерфейс, да еще и работает через раз. Плюс, не понятно, что же делал пользователь с интерфейсом, когда ошибку получил, поэтому остановились на логах. Сначала были текстовые логи, но когда они превысили мыслимые размеры и в них разбираться сложно стало, решили структурировать логи, а что может быть лучше xml, вот и поехала эта доработка.
Для реализации логов, лучше того что вы сами напишете будут специализированные библиотеки. Например Smart Inspect - http://www.gurock.com/smartinspect/
Возможно скоро это, или нечто подобное, будет прикручено к Галактике.