This isn't quite a DSL approach though: the features are turned on and off locally, and don't "escape" from that local source. So provided that one knows the features that can be turned on or off they can just read the source code top to bottom without having to trace which feature was accidentally set in a different file.
Also, re:
> You probably shouldn't rely on people making these choices themselves, because you don't want everyone being a language designer
This would be true for any other language, but with C++ one already has to figure out which subset of features to use, which is basically the same type of choice as turning Circle features on or off.
Also, re:
> You probably shouldn't rely on people making these choices themselves, because you don't want everyone being a language designer
This would be true for any other language, but with C++ one already has to figure out which subset of features to use, which is basically the same type of choice as turning Circle features on or off.