Hi,

Cool! I can't wait to try the library out for a test drive.

> class c2 : public column_name<calculated_column<c2, int, Fn> {};

I think public isn't needed.

> tuple[c1()] = 5;
> int n = tuple[c2()];
> 
> Note that passed objects are light-weight, so we don't pay much penalty for
> their construction even if the optimization isn't done.

Oh, I'm sure it will be optimized!

Regards,
--Joel

----- Original Message ----- 
From: "Arkadiy Vertleyb" <[EMAIL PROTECTED]>


> Hi,
> 
> "Joel de Guzman" <[EMAIL PROTECTED]> wrote in message
> news:005301c286b5$15290e90$5f4ca7cb@;kim...
> 
> > Nice! Now, there's one more macro to remove :-)
> 
> Done.  I just uploaded the corrected version.  We added a new class,
> column_name, which is just a light-weight proxy to the columns we have.
> After these changes, one can define a column like this:
> 
> // regular
> class c1 : public column_name<column<c1, int> > {};
> 
> // calculated
> class Fn {
>     template<class Tuple> int operator()(const Tuple& tuple) {
>         ...
>     }
> };
> class c2 : public column_name<calculated_column<c2, int, Fn> {};
> 
> We think, disregard unfortunate name repitition used to ensure uniqueness,
> this says what it should say:
> 
> c1 is a column name for a regular column with an integer value;
> c2 is a column name for a calculated column with functor Fn that returns an
> integer;
> 
> Macros COLUMN and CALCULATED_COLUMN can be used as they were used before,
> but they are no longer nesessary.  This is a positive side effect -- I
> didn't expect these macros to become unnesessary (in fact I was SURE we'll
> not be able to get rid of them :-)).  The reason it happend -- we now derive
> the tuple from column or calculated_column directly, rather than through c1
> and c2.  So we don't need to define constructors on c1 & c2, which was the
> primary reason for having this macros.
> 
> Fields can be accessed like this:
> 
> tuple[c1()] = 5;
> int n = tuple[c2()];
> 
> Note that passed objects are light-weight, so we don't pay much penalty for
> their construction even if the optimization isn't done.
> 
> Again, the FIELD macro can be used as before, but it's not necessary.  We
> will most likely remove it in the future.
> 
> Looking forward for more feedback.
> 
> Arkadiy
> 
> 
> 
> 
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
> 

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to