Как включить cpp в другой cpp, такой как copy-paste, а не по объявлению? - PullRequest
0 голосов
/ 07 апреля 2019

Недавно я принял стиль, в котором я стараюсь избегать ненужных классов / областей, поэтому код не может быть разбит на файлы по классам или функциям, поскольку почти все происходит в main.Конечно, для большого количества строк кода это будет довольно трудно читать, поэтому я должен как-то разбить его.Я хотел бы сделать что-то вроде этого:

#include <iostream>
int main()
{
    #include "test.cpp"
    return 0;
}

// test.cpp
std::cout << "Test";

Есть ли способ сказать компилятору копировать его именно так?И если да, могу ли я также использовать IntelliSense (VS 2017)?

1 Ответ

1 голос
/ 07 апреля 2019

Независимо от дизайна, является хорошей или плохой идеей, вы можете проверить, как выглядит «конечный» выходной файл. Если вы используете GCC, вы можете использовать флаг -E, например,

g++ -E main.cpp > out

Эта команда выполняет препроцессор и записывает вывод в файл out. В этом примере мой out файл выглядит как

// bunch of STL codes due to <iostream>
// ...

# 2 "main.cpp"
int main()
{
# 1 "test.cpp" 1
std::cout << "Test";
# 5 "main.cpp" 2
  return 0;
}

...