http — Как включить файл C ++ из общего каталога на веб-сервере непосредственно в IDE?

Обзор:
В веб-программировании файлы внешнего кода не обязательно должны находиться в одном каталоге или даже на одном компьютере. Например, я мог бы использовать:

<script src="file.js"></script>

включить файл .js из той же директории. Или же

<script src="https://www.domain.com/file.js"></script>

включить file.js с веб-сервера.

В настоящее время я пишу библиотеку C ++ для GitHub (это просто группа легких файлов C ++) и хочу, чтобы она была доступна для всех, чтобы она могла напрямую включать ее, даже не сохраняя ее вручную; Я хочу, чтобы прекомпилятор управлял временной загрузкой.
К сожалению, приведенный ниже код не работает:

#include "https://www.domain.com/file.h"

Замечания: Вопрос «Как?«не»Является ли это возможным?«и если вы считаете, что это недостижимо, я предполагаю, что вы не можете доказать свой ответ; поэтому, пожалуйста, оставьте его без ответа. Иначе, все решения приветствуются

-3

Решение

Давайте отложим вопрос, если это хорошая идея или нет. Это вообще возможно? Вот что говорит стандарт о директиве #include:

Стандарт C ++ 14, 16,2 / 2 [cpp.include]

Директива предварительной обработки вида

#включают < h-char-sequence> новая строка

выполняет поиск в последовательности мест, определенных реализацией, для заголовка, уникально идентифицируемого указанным
последовательность между < и> разделители, и вызывает замену этой директивы всем содержимым
заголовка. То, как определяются места или определяется заголовок, определяется реализацией.

«Последовательность h-char» позволяет использовать символы из исходного набора символов:

2.3 [lex.charset]

АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЭЮЯ

АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЭЮЯ

0 1 2 3 4 5 6 7 8 9

_ {} [] # () < >%:; , ? * + — / ^ & | ∼! знак равно

Ничто в этой формулировке ничего не говорит о том, где включенные файлы должны находиться физически. Также разрешены все символы, необходимые для полезных URI.

Эта проблема

Отсутствует компилятор C ++, о котором я знаю, и, конечно, никто из основных трех (Clang, GCC, MSVC) не реализует эту функцию.

Сделать

Полагаться на дополнительные инструменты не получится. В этом случае простое клонирование рассматриваемого репозитория является слишком простой и привычной задачей.

Итак, вот что вам нужно сделать:

  • Получите исходный код для соответствующих компиляторов, внедрите поддержку URI для #include (не забудьте, что время кэширования или компиляции будет ледниковым) и получите его как официальную функцию соответствующего компилятора.

  • Реализация поддержки в соответствующих системах сборки. Для начала предлагаю хотя бы сделать, CMake и GNU Autotools.

  • Сделайте много маркетинга, чтобы убедить сообщество C ++ использовать эту функцию.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector