Вдохновленный всякими CHelper и JHelper я написал свой небольшой скрипт, предназначенный для удобного использования prewritten code на c++.
Он удаляет все комментарии и разворачивает все include в кавычках в содержимое соответствующих файлов. При этом не разворачивая ничего рекурсивно.
Здесь можно его скачать https://github.com/zakharvoit/libparser.
Как использовать. Для примера напишем некоторый файл ~/lib/binpow.h
#ifndef LIB_BINPOW_H
#define LIB_BINPOW_H
int binpow(int a, int n)
{
int res = 1;
while (n > 0) {
if (n & 1) {
res *= a;
}
a *= a;
n >>= 1;
}
return res;
}
#endif
И некоторый файл ~/contest/main.cpp
#include <iostream>
#include "binpow.h"
using namespace std;
int main()
{
cout << binpow(2, 10) << endl;
}
Теперь воспользуемся скриптом: ./libparser.pl ~/lib main.cpp output.cpp
После этого в файле output.cpp будет готовый к отправке код.
Для запуска скрипта нужен интерпретатор perl (уже должен быть установлен на unix-like системах). Не уверен, что скрипт будет работать под windows, но скорее всего будет. Если не работает — напишите в комментариях.