On 8/5/2017 9:56 PM, Stefan Seefeld via Boost-build wrote:
  The need for propagated features stems from the fact that
Boost.Build allows multiple build configurations to be
handled simultaneously.  They're basically used for anything
that would be global in other build systems, such as the toolset,
debug vs. release, static vs. shared, etc.
Ah, right. Well, right now I don't support multiple build
configurations. (You can clone artefacts and apply different sets of
features to them all you want, such as a static and a shared version of
a library. But still, both are represented as two distinct objects, and
I haven't encountered the need to propagate features across the entire
graph.)

lib a : a.cpp ;

exe b : b.cpp : <library>a.cpp/<link>shared ;
exe c : c.cpp : <library>a.cpp/<link>static ;

This very basic example illustrates the need for propagated features. I don't want to define (clone?) a twice.

-Matt