[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] babel: ob-C with Visual C++ and compilation-mode
From: |
Ernesto Durante |
Subject: |
Re: [O] babel: ob-C with Visual C++ and compilation-mode |
Date: |
Wed, 13 Aug 2014 22:58:23 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.92 (gnu/linux) |
Thierry Banel <address@hidden> 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
- [O] babel: ob-C with Visual C++ and compilation-mode, Ernesto Durante, 2014/08/04
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Thierry Banel, 2014/08/11
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Ernesto Durante, 2014/08/12
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Thierry Banel, 2014/08/12
- Re: [O] babel: ob-C with Visual C++ and compilation-mode,
Ernesto Durante <=
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Thierry Banel, 2014/08/14
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Ernesto Durante, 2014/08/15
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Thierry Banel, 2014/08/17
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Ernesto Durante, 2014/08/18
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Thierry Banel, 2014/08/18
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Ernesto Durante, 2014/08/20
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Thierry Banel, 2014/08/21
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Ernesto Durante, 2014/08/24
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Thierry Banel, 2014/08/28
- Re: [O] babel: ob-C with Visual C++ and compilation-mode, Eric Schulte, 2014/08/21