emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] babel: ob-C with Visual C++ and compilation-mode


From: Eric Schulte
Subject: Re: [O] babel: ob-C with Visual C++ and compilation-mode
Date: Sun, 17 Aug 2014 22:41:57 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux)

Ernesto Durante <address@hidden> writes:

> 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
>

I'd be happy to commit this patch after you make this change and
re-format with "git format-patch".  Also, please consider filling out
the FSF copyright assignment paperwork, so that we may accept larger
patches from you in the future.

Thanks for you contributions!
Eric

>
>>> 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
>
>
>

-- 
Eric Schulte
https://cs.unm.edu/~eschulte
PGP: 0x614CA05D (see https://u.fsf.org/yw)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]