#+Title: a collection of examples for ob-C tests #+OPTIONS: ^:nil * Simple tests :PROPERTIES: :ID: fa6db330-e960-4ea2-ac67-94bb845b8577 :END: #+source: simple #+begin_src cpp :includes "" :results silent std::cout << 42; return 0; #+end_src #+source: simple #+begin_src cpp :includes :results silent std::cout << 42; return 0; #+end_src #+source: simple #+begin_src D :results silent writefln ("%s", 42); #+end_src #+source: integer_var #+begin_src cpp :var q=12 :includes "" :results silent std::cout << q; return 0; #+end_src #+source: integer_var #+begin_src D :var q=12 :results silent writefln ("%s", q); #+end_src #+source: two_var #+begin_src cpp :var q=12 :var p=10 :includes "" :results silent std::cout << p+q; return 0; #+end_src #+source: two_var #+begin_src D :var q=12 :var p=10 :results silent writefln ("%s", p+q); #+end_src #+source: string_var #+begin_src cpp :var q="word" :includes '( ) :results silent std::cout << q << ' ' << std::strlen(q); return 0; #+end_src #+source: string_var #+begin_src D :var q="word" :results silent writefln ("%s %s", q, q.length); #+end_src #+source: define #+begin_src cpp :defines N 42 :includes "" :results silent std::cout << N; return 0; #+end_src * Array :PROPERTIES: :ID: 2df1ab83-3fa3-462a-a1f3-3aef6044a874 :END: #+source: array #+begin_src cpp :includes "" :results vector :results silent for (int i=1; i<3; i++) { std::cout << i << '\n'; } return 0; #+end_src #+source: array #+begin_src D :results vector :results silent foreach (i; 1..3) writefln ("%s", i); #+end_src * Matrix :PROPERTIES: :ID: cc65d6b3-8e8e-4f9c-94cd-f5a00cdeceb5 :END: #+name: C-matrix | 1 | 2 | | 3 | 4 | #+source: list_var #+begin_src cpp :var a='("abc" "def") :includes "" :results silent std::cout << a[0] << a[1] << sizeof(a)/sizeof(*a) << '\n'; #+end_src #+source: list_var #+begin_src D :var a='("abc" "def") :results silent writefln ("%s%s%s", a[0], a[1], a.length); #+end_src #+source: vector_var #+begin_src cpp :var a='[1 2] :includes "" :results silent std::cout << a[0] << a[1] << sizeof(a)/sizeof(*a) << '\n'; #+end_src #+source: vector_var #+begin_src D :var a='[1 2] :results silent writefln ("%s%s%s", a[0], a[1], a.length); #+end_src #+source: list_list_var #+begin_src cpp :var q=C-matrix :includes "" :results silent std::cout << q[0][0] << ' ' << q[1][0] << '\n' << q[0][1] << ' ' << q[1][1] << '\n'; // transpose #+end_src #+source: list_list_var #+begin_src D :var q=C-matrix :results silent writefln ("%s %s", q[0][0], q[1][0]); writefln ("%s %s", q[0][1], q[1][1]); // transpose #+end_src * Inhomogeneous table :PROPERTIES: :ID: e112bc2e-419a-4890-99c2-7ac4779531cc :END: #+name: tinomogen | day | quty | |-----------+------| | monday | 34 | | tuesday | 41 | | wednesday | 56 | | thursday | 17 | | friday | 12 | | saturday | 7 | | sunday | 4 | #+source: inhomogeneous_table #+begin_src cpp :var tinomogen=tinomogen :results silent :includes int main() { int i, j; for (i=0; i :results output verbatim raw std::cout << "\"line 1\"\n"; std::cout << "\"line 2\"\n"; std::cout << "\"line 3\"\n"; #+end_src * File naming :PROPERTIES: :ID: 1a691f36-f9c1-4531-8fc0-ee7b21ef5975 :END: The binary file is saved in =./hello-world=. #+name: compile-only-1 #+begin_src C++ :includes :results none :compile-only yes :file ./hello-world std::cout << "Hello World!\n"; #+end_src A link to the binary file is inserted when =:results file= is set. #+name: compile-only-2 #+begin_src C++ :includes :results file :compile-only yes :file ./hello-world std::cout << "Hello World!\n"; #+end_src #+RESULTS: compile-only-2 [[file:./hello-world]] Error! The =:file= header is unset. #+name: compile-only-3 #+begin_src C++ :includes :results none :compile-only yes std::cout << "Hello World!\n"; #+end_src Syntax Error! =*Org-Babel Error Output*= buffer is popped open. The contents of that buffer are also the results of this block. #+name: compile-only-4.0 #+begin_src C++ :includes :results output :compile-only yes :file ./hello-world std::cout << "Hello World!\n" <== syntax error #+end_src Same, except results are silenced. #+name: compile-only-4.1 #+begin_src C++ :includes :results none :compile-only yes :file ./hello-world std::cout << "Hello World!\n" <== syntax error #+end_src Warnings. #+name: compile-only-5 #+begin_src C++ :includes :flags -Wall :results output :wrap example :compile-only yes :file ./hello-world int i{0}; std::cout << "Hello World!\n"; #+end_src