Как сделать так, чтобы в org babel было включено более одного?
Я работаю с C++ в org babel и хотел бы узнать, как отформатировать включения, чтобы я мог перечислить более одного.
Вот что я пытаюсь (что не получается)
#+BEGIN_SRC C++ :includes <cstdio> :includes <iostream> :includes <string>
using namespace std;
printf("Hello ");
cout << "world\n";
#+END_SRC
В этом случае оба printf
а также cout
не объявлены в этой области. Я могу отбросить ненужное :includes <string>
от заголовков и тому cout
не выдает ошибку, поэтому кажется, что только последний :includes
на счет. Я попытался загрузить несколько включений в одну строку, не используя ничего, запятые и пробелы в качестве разделителей, и я всегда получаю сообщение об ошибке, касающееся дополнительных токенов, в конце директивы include. Я также пытался использовать :includes+
в случае, если это работает в строке заголовка, но это не так.
Я совершенно уверен, что то, что я пытаюсь сделать, должно быть возможным, потому что в документации сказано, что
:includes
(C & CC+ only) accepts either a single string name, or a list of names of files to #include in the execution of the code block
Org-версия: 8.2.7-4-g880362-elpa
РЕДАКТИРОВАТЬ:
Стоит отметить, что другие аргументы заголовка могут быть просто связаны вместе (т.е. :results raw drawer
будет выдавать неформатированные результаты в ящике), так что есть большая вероятность, что это ошибка. С помощью :include <cstdio> <iostream>
выдает ошибку компилятора, что в конце #include <cstdio>
линия.
РЕДАКТИРОВАТЬ 2:
Оказывается, это на самом деле ошибка в org, поэтому она была отправлена.
1 ответ
После некоторых экспериментов, в ходе которых я заметил, что некоторые сообщения об ошибках выглядят довольно странно, и, используя поверхностные знания о Лиспе, я нашел ответ:
#+begin_src C++ :includes '("<math.h>" "<iostream>" "<algorithm>")
// Freely use symbols from those headers
#+end_src
Другая проблема, с которой я сталкиваюсь, заключается в том, что я могу заставить его работать только при использовании заглавной буквы C++, но я получаю подсветку синтаксиса, только если использую minuscules ("C++"). Чистая радость.