Как я могу использовать "#" как символ в директивах препроцессора C ++ - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу переопределить #include к другому слову.Я не знаю, может ли предварительная обработка C ++ сделать это, но я пытаюсь:

#define import #include
#define io <iostream>

import io

Это не работает, очевидно, поэтому мне просто интересно, смогу ли я избежать "#" в "оператор import #include ", чтобы полностью изменить его, но это также потребует еще одного прогона для препроцессора, как я полагаю.Любой вклад для этого будет высоко ценится.

Вывод ошибки: " Stray" # "найден в выражении ... " для всех, кто хочет знать ошибку.

РЕДАКТИРОВАТЬ: Я посмотрел комментарии,и теперь я понимаю больше, как работает препроцессор c.Я действительно не понимал это раньше, но я думаю, что нашел обходной путь.Причиной этого было создание несколько более простого способа преобразования операторов импорта из одного языка для включения операторов в c ++.Этот язык был моим собственным созданием, и да, он делает то, что нельзя сделать на других языках.

1 Ответ

0 голосов
/ 11 сентября 2018

Вы не можете переопределить #include с помощью средств на языке C ++ (включая препроцессор), извините.

Но вы можете предварительно обработать исходный код с помощью любой программы, даже написанной на C ++. Хотя у меня сложилось впечатление, что язык сценариев является наиболее распространенным выбором. Однако делайте это только по очень веской причине.

Например, некоторые люди, включая меня, думают, что предварительная обработка в рамках Qt - это Evil & trade ;. Это, безусловно, не нужно в современном C ++, языке после C ++ 11. Но эта структура предшествует современной C ++.

...