Boost logo

Boost :

Subject: Re: [boost] Boost.Generic, C++0x Concepts, and C++1y Concepts
From: Lorenzo Caminiti (lorcaminiti_at_[hidden])
Date: 2012-09-27 20:45:10


On Thu, Sep 27, 2012 at 2:09 PM, Matt Calabrese <rivorus_at_[hidden]> wrote:
> On Thu, Sep 27, 2012 at 4:00 PM, Lorenzo Caminiti <lorcaminiti_at_[hidden]>wrote:
>> It might help to start by taking a look at
>> contract/detail/preprocessor/traits/. Also, this is a possible syntax
>> I had in mind for C++0x concept definitions:
>>
>>
>> http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_4_1/doc/html/contract__/concepts.html#contract__.concepts.concept_definitions__not_implemented_
>
>
> Looks great. I'll probably do most of that eventually, but I'd like to save
> those changes for later, since what is in currently works and I'd rather
> focus on new features first before I overhaul the interface.

Makes sense. Also be careful that Boost.Contract increases compilation
times x30!! Essentially the lib does the following steps (1) macros
parse the syntax (pp), (2) macros expand code that implements the
contracts (pp), (3) the expanded code (there's a lot of template
meta-programming here) is compiled (compiler). I don't know how the
x30 is distributed between (1), (2), and (3) (I still have to analyze
and optimize that) but if you were to adopt the syntax you'll start
paying the overhead that comes from (1)--(2) and (3) instead will be
specific to your lib.

--Lorenzo


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk