From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: babel: ob-C with Visual C++ and compilation-mode Date: Sun, 17 Aug 2014 22:41:57 -0400 Message-ID: <87r409cihz.fsf@gmail.com> References: <878un4ut6c.fsf@gmail.com> <53E91C32.4000002@free.fr> <87lhqt6b0w.fsf@gmail.com> <53EA8F2B.7010205@free.fr> <87zjf8cdjk.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54402) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XKfUx-00079t-Oy for emacs-orgmode@gnu.org; Thu, 21 Aug 2014 23:26:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XKfUs-0000AL-5r for emacs-orgmode@gnu.org; Thu, 21 Aug 2014 23:26:43 -0400 Received: from mail-ie0-x230.google.com ([2607:f8b0:4001:c03::230]:62455) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XKfUs-0000AH-0q for emacs-orgmode@gnu.org; Thu, 21 Aug 2014 23:26:38 -0400 Received: by mail-ie0-f176.google.com with SMTP id tr6so5839935ieb.21 for ; Thu, 21 Aug 2014 20:26:37 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Ernesto Durante Cc: emacs-orgmode@gnu.org Ernesto Durante writes: > Thierry Banel 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 '( ) :results silent > template > 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 '( ) :results silent > template > 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)