all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Creating C++ constructor member init lists
@ 2009-10-27 20:08 Sarir Khamsi
  2009-10-27 21:21 ` Pascal J. Bourguignon
  0 siblings, 1 reply; 3+ messages in thread
From: Sarir Khamsi @ 2009-10-27 20:08 UTC (permalink / raw)
  To: help-gnu-emacs

I'd like to write some code in some language (preferably in Emacs
Lisp) to take a C++ class and add member variables to the
constructor's member initialization list in an automated
fashion. Given something like:

   struct MyType
   {
      MyType();
      // ...
   private:
      int i1_;
      double d_;
      T1 *pT1_;
      T2 t2_;
   };

I'd like the code to generate:

   struct MyType
   {
      MyType() :
         i1_(0),
         d_(0.0),
         pT1_(0),
         t2_()
      {
      }
      // ...
   private:
      int i1_;
      double d_;
      T1 *pT1_;
      T2 t2_;
   };

It would be easy to write something that just default-constructs the
members, but I'd like to make it smart enough to init bools to
"false", ints to "0", doubles to "0.0", etc. My questions are:

 - Are there helper functions in c++-mode that can be used to
   enumerate member variables, or make life easier?
 - Is there code to do something like this already (I looked a bit and
   didn't find exactly what I wanted)?
 - Is GCC-XML worth looking into? I've looked at the output of a small
   C++ class and could use Python to do what I want.

I haven't started the coding and wanted to get other people's
input. Thanks.

Sarir

-- 
Sarir Khamsi
software guy
sarir.khamsi@raytheon.com


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-10-28 21:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-27 20:08 Creating C++ constructor member init lists Sarir Khamsi
2009-10-27 21:21 ` Pascal J. Bourguignon
2009-10-28 21:29   ` Sarir Khamsi

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.