calculator212, зачем тебе передавать куда-то память и распределять ее между процессами, когда ты легко можешь воспользоваться потоками ввода-вывода. Напиши свой C++ код как простой терминальный процесс, который из стандартного ввода читает бинарные данные файла, меняет их и пишет в свой стандартный вывод. А на Go просто и без ожидания закачки всего файла перенаправь вычитку сетевого буфера на ввод запускаемого подпроцесса. С того же подпроцесса будешь и модифицированные данные файла читать.
Spooky 2020 , с языком, все-таки, нужно определиться, т.к. ответ на вопрос сильно зависит от выбора языка.
Если тебе не важен язык, то тебе лучше не задавать и вопрос. Вместо этого тебе стоит взять любой подходящий по твоим требованиям алгоритм и реализовать его самостоятельно.
Mercury13, для этого должна присутствовать целая когорта конфигурационно-зависимых типов и конструкций.
Вот запустились в отладке - работают конструкции, проверяют, выявляют, обличают приспешников зла, экстремистов-программистов и прочих нелюдей.
Запустились в релизе - все чинно, гладко и без отладочных плясок.
Лично я для этого использую шаблоны, у меня в коде макросов практически нет. Шаблоны специализируются от специальной константы, состояние которой символизирует выбранную конфигурацию сборки.
Сами инструменты отладки представляют из себя слоевые абстракции, встраивающиеся в иерархии типов и цепочки вызовов функций. И это все работает идеально.
А так, в своем решении ты пока посадил крайне неинформативное сообщение, на которое среагирует только хорошо осведомленный человек.
Mercury13, обычно это решается конфигурациями сборки и, собственно, сборкой только в релизе для пользователей.
Лично я не представляю как можно отдать что-то в режиме отладки пользователю когда пользователь получает только релизный билд.
Nightmare1, Adamos и пишет о том, что ты от языка требуешь то, чего там нет и не надо. С рефлексией можно было бы делать всякое, но не надо. C++ не для этого.
Лучшим выходом для тебя было бы сделать промежуточную стадию трансляции кода и свой собственный атрибут языка.
libclang может помочь с реализацией промежуточной стадии. Ее цель - пройтись по исходному коду твоего проекта и сгенерировать код сериализации опираясь на твои атрибуты в коде.
По поводу схем на метаязыке лучше посмотреть в сторону Protobuf, Flatbuffers или Cap-n-Proto. Они уже готовы и надежны, свой такой можно не писать.
Nightmare1 , дай своей функции другие название.
Попутно, тебе стоит иметь в виду что в вопросе имеется нарушение П3.8 регламента работы сервиса. Скриншот лога сборки нужно удалить из вопроса. Замени его на правильно оформленный текст.
foonfyrick, не верить - твое дело, я не запрещаю. На уже произошедшие события это никак не повлияет.
Просто ты вот так помнишь события, в силу своих интересов и своих способностей. Я - иначе помню.
Твой вопрос нарушает регламент работы сервиса. Ознакомься с П2.2 и П5.15.
foonfyrick , интернет появился в 1983. Это не 15 лет назад. На территории России интернет появился еще в 1990 году, еще в СССР. Можешь об этом уточнить у Сергея Вакуленко [?], если есть сомнения.
В 2004 году, обучаясь еще на втором курсе университета, я уже свободно владел и сетями коммуникаций, и методами исследования сетей, и базовыми методиками выявления ошибок в сетях передачи данных.
И все это я получил из открытых источников, которым уже на тот момент было больше 10 лет.
Марк, чисто ради интереса, до идеала тут можно довести буквально все. Буквально каждую строчку. Начиная с using namespace std;, которую нужно удалить ради приближения к идеалу промышленного кода.
Оптимизация - это слишком общее слово чтобы обозначать им какой-то конкретный процесс.
Тебе стоит указать, какие именно направления оптимизации тебя интересуют.
Antohabr, мой совет будет таким (именно совет, а не ответ).
Перекинь силы на изучение питона. Недели за две ты сможешь им уверенно пользоваться. Плюсы тебе могут мало подойти в виду того что даже со своим университетским образованием плюсы ты сейчас, по факту, не знаешь вообще. Язык за последние годы изменился очень сильно и твои знания уже частично не верны и частично вводят тебя в заблуждение.
На плюсах разработка у тебя пойдет очень тяжело. А вот на питоне тебе, возможно, даже понравится.
Так вот. Переходи на питон и попробуй свою задумку сделать на PyQt.
Информации о питоне и PyQt в сети хоть отбавляй. Любой твой вопрос по коду или интерфейсу уже отвечен на SO.
Питон позволяет паковать свой код в исполняемые файлы. PyQt поставляется с набором библиотек для встраивания в свое ПО. Таким образом у тебя будет возможность легко и быстро создавать требуемое ПО с возможностью свободного распространения.
Antohabr , расскажи немного о себе.
Какой у тебя уровень владения C и C++? Знаешь ли ты питон? Какой у тебя опыт разработки ПО вообще и оконных приложений в частности?
Убери скриншот с кодом, замени его на правильно оформленный текст.