Thierry Banel <tbanelweb...@free.fr> writes: >> I have identified a minor bug. When a source code block has the mode >> cpp, we cannot expand the code or more precisely the code is not >> expanded in the correct way because the following function is missing >> >> (defun org-babel-expand-body:cpp (body params) >> "Execute BODY according to PARAMS.This function calls >> `org-babel-expand-body:C++'." >> (org-babel-expand-body:C++ body params)) > Thanks for reporting this ! You may consider submitting a patch for this > bug. The comment "Execute BODY ..." should be changed to "Expand BODY ...". > >> Ok I will change the comment
>> Best >> Ernesto > You are very welcome > Thierry Thank you Thierry for your answer and all the details. I really want to be a contributor and help ob-C to improve (as well as can do a modest lisper). I tried to find a way to master Cx11 and babel is helping me a lot. I think babel can really accelerate learning and dissimation of C++. In this perspective, I have another very simple idea that I want to share with you. I find C++ too noisy. In the following piece of code I really find the presence of the main call and the return statement really annoying and useless. #+begin_src C++ :includes '(<iostream> <cassert>) :results silent template <typename T1, typename T2> auto compose(T1 t1, T2 t2) -> decltype(t1 + t2) { return t1+t2; } int main() { auto d=compose(std::string("ola"),std::string("ciao")); //d's type is std::string auto i=compose(4,2); assert(d== std::string("olaciao") && i==6); return 0 } #+end_src We can remove it by letting ob-C do the work by modifying the function org-babel-C-ensure-main-wrap. Now the code looks (according to me) easier to read #+begin_src C++ :includes '(<iostream> <cassert>) :results silent template <typename T1, typename T2> auto compose(T1 t1, T2 t2) -> decltype(t1 + t2) { return t1+t2; } template <> int compose(int t1,int t2) { return t1+t2; } ////main//// auto d=compose(std::string("ola"),std::string("ciao")); //d's type is std::string auto i=compose(4,2); assert(d== std::string("olaciao") && i==6); #+end_src What do you think ? Best Ernesto