Имеется куча функций
int func001();
int func002();
...
int func015();
...
int func123();
Как их всех можно перебрать в цикле?
Как вызвать функцию зная ее номер?
P.S. Убрал не работающий код.
@VladD, опять комментарии кончились, причем предыдущий удалил (хорошо, что скопировал), а новый не дает создать. Пришлось в ответе набивать...
Это однозначно надо решать, создавая shared library (.so или .dll в винде).
Делаете такую библиотеку. main при запуске подгружает ее и вызывает функции по имени, в зависимости от номера задачи.
--
Конечно, можно генерить исходник main-а по шаблону каждый раз.
Но, IMHO с загружаемой библиотекой (или несколькими) и файлом конфигурации к ним, описывающим аргументы-результат (предполагая некое развитие задачки) просто красивей.
Создайте массив указателей на ваши функции, и вызывайте функции при проходе по массиву.
Но честно говоря очень, оочень странная задача как для C++.
UPD
Еще вариант: написать скрипт на Perl который сгенерит большой source file с вызовом всех этих функций.
Как-то так.
#include <map>
void func1();
void func2();
int main()
{
std::map<int, func_t> funcs;
funcs.insert(std::make_pair(1, &func1));
funcs.insert(std::make_pair(2, &func2));
for(std::map<int, func_t>::iterator i = funcs.begin(); i != funcs.end(); i++) {
{
i->second(/*аргументы*/);
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет, около месяца пишу на C++ и вот появилась мысль попробовать Qt, тем более он кроссплатформенный
При сериализации в boost::serialization можно записать вектор std::vector<int> base;
Например есть файл размером 1ГБ, как получить участок данных из него находящиеся где то посередине не читая его полностью