SRC: with на C++
От: Alexander Shargin Россия RSDN.ru
Дата: 02.09.02 08:00
Оценка: 33 (4)
По следам http://www.rsdn.ru/forum/Message.aspx?mid=91931
Автор: Yurets
Дата: 29.08.02
.

Вот пример реализации конструкции with на C++ (обратные слеши в макросах поскипаны).

#define WITH(cls, obj)
   {
      struct ___WithHelperClass : public cls
      {
         void do_with()
         {

#define END_WITH(obj)
         }
      };

      ((___WithHelperClass&)obj).do_with();
   }


Использование:

   struct SS
   {
      int a;
      double b;
      char c;

      void f() {}
      void p(int i)
      {
         printf("printing... i=%d, a=%d, b=%lf, c=%c", i, a, b, c);
      }
   };

   SS ss;

   WITH(SS, ss)
      a = 1;
      b = 2;
      c = 3;
      f();
      p(1);
   END_WITH(ss)


Это только идея, реализацию можно попробовать усовершенствовать.
--
Я думал, ты огромный страшный Бажище,
А ты недоучка, крохотный Бажик...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.