Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

C++ Boost Libraries

91 views
Skip to first unread message

Real Troll

unread,
Jan 11, 2018, 11:48:25 PM1/11/18
to
Just wondered if anybody is using Boost Libraries here?

<http://www.boost.org/doc/libs/1_66_0/>

It is free and open source. the zip file will give you all the source
code and header files. they have NNTP newsgroup on gmain:

<news://news.gmane.org/gmane.comp.lib.boost.user>

They have other newsgroups as well for development, documentation, etc
etc. so just search for them on GMAIN.

GMAIN newsgroups are all moderated so religious posts are not allowed on
it!!

The download links for boost libraries is here:

<http://www.boost.org/users/history/version_1_66_0.html>

One of the contributors was a speaker at CPPCon2017 in this video:

<https://www.youtube.com/watch?v=YxmdCxX9dMk&feature=youtu.be>

He is Robert Ramey





Alf P. Steinbach

unread,
Jan 12, 2018, 4:18:49 AM1/12/18
to
On 1/12/2018 5:50 AM, Real Troll wrote:
> Just wondered if anybody is using Boost Libraries here?
>
> <http://www.boost.org/doc/libs/1_66_0/>

I don't use Boost, but if I should happen to work for a company again I
would recommend using Boost, in spite of the problem of new versions
obsoleting and sometimes invalidating old code. Because it's the same
problem as with other libraries. One can't not use libraries.

One reason that Boost isn't as critical now as with C++03, is that the
core language has acquired smart pointers and threading support. With
C++17 we even got the filesystem library as a standard library sub-library.

Still, there are the two calendar libraries (date handling, can be
critical), and bignums, and matrices, and parser generation, and image
handling, and and... Oh yes, interface to Python. That's cool and very
practically useful, and I sort of regret not having tried it out.


> It is free and open source.  the zip file will give you all the source
> code and header files.  they have NNTP newsgroup on gmain:
>
> <news://news.gmane.org/gmane.comp.lib.boost.user>

I thought I remembered from yesteryear or perhaps 2015 that the guys in
Bergen (Norway) who supplied the gmane service, shut it down for good.

Checking... Oh!

“At the end of July 2016, Gmane briefly closed and was acquired by
Yomura in mid August.”


> They have other newsgroups as well for development, documentation, etc
> etc.  so just search for them on GMAIN.
>
> GMAIN newsgroups are all moderated so religious posts are not allowed on
> it!!
>
> The download links for boost libraries is here:
>
> <http://www.boost.org/users/history/version_1_66_0.html>
>
> One of the contributors  was a speaker at CPPCon2017 in this video:
>
> <https://www.youtube.com/watch?v=YxmdCxX9dMk&feature=youtu.be>
>
> He is Robert Ramey

There are lots of Boost contributors.


Cheers!,

- Alf

Richard

unread,
Jan 12, 2018, 1:03:31 PM1/12/18
to
[Please do not mail me a copy of your followup]

I like boost in general and there are some great libraries in there, but
there are also some downsides. It is very intimidating and difficult
for beginners to get going with libraries that require compilation.
The build system is archaic, homebrew, and poorly documented. The size
of the distribution is unwieldy. There needs to be a way to get targeted
subsets of boost so that you don't need to download a huge thing and
figure out how to build/use just what you need.

On the plus side, these issues are not unknown to the boost community and
they are (slowly) making progress towards resolving them. They switched
to modular git on github from subversion a while back and they recently
announced that they are officially adopting CMake for the build, although
the distribution hasn't been offficially converted yet. Some of the
slow progress is due to the fact that each library within boost has its
own maintainer and so global changes move at a varied rate.

I just switched my C++ Koans repo to use Catch2 as the unit test
library and it was a piece of cake to switch. Catch2 is much easier
for beginners to use than Boost.Test. Catch2 also feels lighter than
Boost.Test even though it appears to have the same, if not more,
features. The same can be said for Catch2 compared to Google Test,
which is the other dominant unit testing framework out there. It
feels like Catch2 is gaining more adherents over time.
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <http://terminals-wiki.org>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>

woodb...@gmail.com

unread,
Jan 13, 2018, 10:02:43 AM1/13/18
to
On Thursday, January 11, 2018 at 10:48:25 PM UTC-6, Real Troll wrote:
> Just wondered if anybody is using Boost Libraries here?
>

I use a pinch of Boost in the C++ Middleware Writer (CMW).

> It is free and open source.

The CMW is free:
https://github.com/Ebenezer-group/onwards
https://www.linkedin.com/pulse/serialization-benchmarks-brian-wood/


Brian
Ebenezer Enterprises - Enjoying programming again.
http://webEbenezer.net

Real Troll

unread,
Jan 13, 2018, 8:51:30 PM1/13/18
to
On 12/01/2018 09:18, Alf P. Steinbach wrote:
>
>
> One reason that Boost isn't as critical now as with C++03, is that the
> core language has acquired smart pointers and threading support. With
> C++17 we even got the filesystem library as a standard library
> sub-library.
>
> Still, there are the two calendar libraries (date handling, can be
> critical), and bignums, and matrices, and parser generation, and image
> handling, and and... Oh yes, interface to Python. That's cool and very
> practically useful, and I sort of regret not having tried it out.


The problem with Boost is that their header files are linked like so:

# include <boost/config/detail/select_compiler_config.hpp>

Now in VS this is not going to compile because it requires linking like
this:

# include "boost/config/detail/select_compiler_config.hpp"

Now if it is one or two files you can change quickly but Boost has
nested header files (about 63,000) so it is almost impossible to change
all of them.

Both VS and Builder C++ (Embarcadero) complains about this type of
linking. Why they decided to do this is something I don't know. Perhaps
there must be another way to compile these files in your project.

Mr Flibble

unread,
Jan 13, 2018, 8:55:31 PM1/13/18
to
Ignore the troll.

/Flibble

--
"Suppose it’s all true, and you walk up to the pearly gates, and are
confronted by God," Bryne asked on his show The Meaning of Life. "What
will Stephen Fry say to him, her, or it?"
"I’d say, bone cancer in children? What’s that about?" Fry replied.
"How dare you? How dare you create a world to which there is such misery
that is not our fault. It’s not right, it’s utterly, utterly evil."
"Why should I respect a capricious, mean-minded, stupid God who creates
a world that is so full of injustice and pain. That’s what I would say."

Alexander Huszagh

unread,
Jan 16, 2018, 7:27:54 PM1/16/18
to
I like almost all of the implementation code in Boost. I generally dislike a lot of the design choices made by the authors. I generally understand **why** this was made (to support ancient, buggy compilers), and sometimes fail to understand why (like why Boost filesystem silently converts UTF-16 paths to ANSI paths when narrow streams are required, even though it's easy to wrap HANDLEs into C++ streams, leading to disastrous consequences). Regardless, my impression of Boost as a whole is that it is an impressive, reusable, and extendable collection of code by some of the brightest C++ software developers out there that should be carefully curated before being using in production code.

Cholo Lennon

unread,
Jan 18, 2018, 10:09:22 AM1/18/18
to
On 12/01/18 15:03, Richard wrote:
> [Please do not mail me a copy of your followup]
>
> I like boost in general and there are some great libraries in there, but
> there are also some downsides. It is very intimidating and difficult
> for beginners to get going with libraries that require compilation.
> The build system is archaic, homebrew, and poorly documented. The size
> of the distribution is unwieldy. There needs to be a way to get targeted
> subsets of boost so that you don't need to download a huge thing and
> figure out how to build/use just what you need.
>
> On the plus side, these issues are not unknown to the boost community and
> they are (slowly) making progress towards resolving them. They switched
> to modular git on github from subversion a while back and they recently
> announced that they are officially adopting CMake for the build, although
> the distribution hasn't been offficially converted yet. Some of the
> slow progress is due to the fact that each library within boost has its
> own maintainer and so global changes move at a varied rate.
>
> I just switched my C++ Koans repo to use Catch2 as the unit test
> library and it was a piece of cake to switch. Catch2 is much easier
> for beginners to use than Boost.Test. Catch2 also feels lighter than
> Boost.Test even though it appears to have the same, if not more,
> features. The same can be said for Catch2 compared to Google Test,
> which is the other dominant unit testing framework out there. It
> feels like Catch2 is gaining more adherents over time.
>

I don't know Catch2 (I'll take it a look!), but Boost.Test is really
simple, even for beginners:

// MyTest.cpp, compile with (just define BOOST_HOME env.var.):
// VC: cl /EHa /I%BOOST_HOME% MyTest.cpp
// gcc: g++ -I$BOOST_HOME MyTest.cpp -o MyTest

#define BOOST_TEST_MODULE MyTest
#include <boost/test/included/unit_test.hpp>

BOOST_AUTO_TEST_CASE(simpleTest)
{
// BOOST_REQUIRE_EQUAL(...
// BOOST_REQUIRE(...
// BOOST_FAIL(...
// BOOST_ERROR(...
// BOOST_REQUIRE_NE(...
// BOOST_REQUIRE_THROW(...
// BOOST_MESSAGE(...
// Etc.
}

struct MyFixture {
// ...
};

BOOST_FIXTURE_TEST_CASE(testWithFixture1, MyFixture)
{
// ...
}

BOOST_FIXTURE_TEST_CASE(testWithFixture2, MyFixture)
{
// ...
}

// end of MyTest.cpp


Regards


--
Cholo Lennon
Bs.As.
ARG
0 new messages