On 30 Aug 2015 at 9:14, Robert Ramey wrote:
On 8/30/15 6:34 AM, Niall Douglas wrote:
Note that as AFIO is standalone capable, simply entering its directory and typing:
./standalone_alltests_gcc.sh ./test_all
should "just work" if you have a Filesystem TS on your system. If not, it'll auto-configure including Boost.Filesystem.
I realize I might be in the minority here - but I'm very much opposed to this design approach. It has been used in boost.build and probably some libraries.
By design approach - I mean the practice of the library designer trying to implement what he "thinks" the user wants without advising or consulting the user so that "it just works".
Every single dependency used by AFIO can be chosen via configuration macro. I believe this is unique amongst Boost libraries. It does default to certain choices if not told otherwise. Those defaults and their values and conditions are explained at https://boostgsoc13.github.io/boost.afio/doc/html/afio/compilation.htm l.
Do not make the operation of a library implicitly dependent on some environmental feature.
better alternative:
a) list the requirements of the library. b) If it can depend one of several ways of doing things - list those explicitly.
The exact requirements are listed at https://boostgsoc13.github.io/boost.afio/doc/html/afio/introduction.ht ml The configuration options and defaults are listed at https://boostgsoc13.github.io/boost.afio/doc/html/afio/compilation.htm l
c) require that the user make an explicit choice. If he declines to do so, trap this condition and display error as soon as possible - do not implement code so that "it just works".
AFIO does an #error Helpful message in exactly these situations.
d) If you can't bring yourself to do the above - require that the user explicitly specify "let system decide" or something like that. At least this will not inflict this design error on the rest of us.
The local platform auto detection only happens for standalone AFIO. If used as a Boost module, AFIO always uses Boost for everything. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/