Как да има повече от едно включване в 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 се брои. Опитах да заредя множество включвания в един и същи ред, като не използвах нищо, запетаи и интервали като разделители и винаги получавам грешка за допълнителни токени в края на директивата за включване. Също така се опитах да използвам :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

Орг-версия: 8.2.7-4-g880362-elpa

РЕДАКТИРАНЕ:

Струва си да се отбележи, че други аргументи на заглавието могат просто да бъдат нанизани заедно (т.е. :results raw drawer ще произведе неформатирани резултати в чекмедже), така че има приличен шанс това да е грешка. Използването на :include <cstdio> <iostream> създава грешка на компилатора, че има допълнителен токен в края на реда #include <cstdio>.

РЕДАКТИРАНЕ 2:

Оказва се, че всъщност е грешка в организацията, така че е изпратено.


person William Everett    schedule 26.08.2014    source източник


Отговори (1)


След известно експериментиране, по време на което забелязах, че някои съобщения за грешка изглеждат доста шепеляви, и използвайки повърхностните познания, които имам за Lisp, намерих отговора:

#+begin_src C++ :includes '("<math.h>" "<iostream>" "<algorithm>")
// Freely use symbols from those headers
#+end_src

Друг проблем, който имам, е, че мога да го накарам да се изпълни само ако изписвам C++ с главни букви, но получавам осветяване на синтаксиса само ако използвам малки букви („c++“). Чиста радост.

person Tobi Schlüter    schedule 10.09.2015