Boost logo

Boost :

Subject: [boost] [ublas] FYI: msvc12 compilation errors and some questions
From: Adam Wulkiewicz (adam.wulkiewicz_at_[hidden])
Date: 2014-04-17 16:17:25


Hi,

FYI, ublas is broken for MSVC 12 due to the use of constexpr which is
not suported by this compiler.
I might fix it however I assume there are people who would like to do it.

Btw, would you be so kind and answer for some questions? I'm curious
about the design.

Why BOOST_UBLAS_CPP_GE_2011 library-wide #define is usedto enable
fixed_vector<>?
This makes it available only on some compilers which allows the users to
write non-portable code.
Shouldn't Boost libraries use language featureswhen they're available or
emulate them rather than enable/disable some functionalities?
Especially when it could be easily done, like in this case.

Variadic templates may be emulated with Boost.Preprocessor, e.g. see how
emplace_back() is implemented in boost::container::vector<> :

https://github.com/boostorg/container/blob/develop/include/boost/container/vector.hpp
lines 1309-1380.

constexpr may be conditionally used e.g. like this:

#ifndefBOOST_NO_CXX11_CONSTEXPR

     #define CONSTEXPR_OR_STATIC constexpr

#else

     #define CONSTEXPR_OR_STATIC static

#endif

So I'm wondering was the decision about the design made to push the
library towards "pure" C++11?
If yes, does this mean that all new features will require C++11?

Regards,
Adam


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