Subject: Re: [boost] [optional] Safe optional
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2014-11-18 05:51:40
On 18 Nov 2014 at 7:59, Vicente J. Botet Escriba wrote:
> The current problem we have with our TBoost.Expected is that we don't
> have an implementation for C++98 compilers :(
> If the Boost community can accept a C++11 only library I'll be glad to
> work on preparing it for review.
> Is there any one that wants to work on a branch to port it to C++98
FYI Vicente I should, before Christmas, port Expected to my BindLib
platform which is rapidly maturing into a very viable lightweight
base for a C++ 11 only Boost 2.0 - it can now do compiler feature
detection and emulation of Boost.Test, thus eliminating the need for
Boost.Core and Boost.Test. Then Expected can function as a
std::experimental and a boost edition, indeed both builds can coexist
in the same translation unit.
I hope to submit BindLib into the Boost review queue early 2015.
These last few weeks have been consumed with porting AFIO to BindLib
as the first real test of the viability of the new platform, and
getting regular Jenkins CI unit testing working which has been a
challenge given the heavy preprocessor usage to implement
psuedo-Modules. It was a great moment last week when proposed
Boost.AFIO completed a full unit test cycle using nothing but BindLib
and the VS2015 STL without a single line of Boost code anywhere in
there, and seconds later it completed a full unit test cycle using
Boost exclusively for everything.
BindLib doesn't care about C++ 98, but the bindings are inevitably a
hard requirement for template aliasing support in the compiler. On a
98 platform, bindings could be synthesised using namespace mounts,
indeed due to lack of two phase lookup on MSVC one already needs to
monkey patch MSVC's broken lookup using namespace mounts.
To be honest the challenge in getting Expected onto a 98 platform
will be all the C++ 11 features Expected uses. Even my unrestricted
unions emulation for VS2013 only works because I took advantage of
VS2013's very relaxed parser. That emulation won't compile on an AST
based compiler as it's illegal C++. Those are the kind of headaches
someone porting Expected to 98 would have to face - I could imagine a
brand new rewrite from scratch might actually be faster.
-- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/