Dear Jonathan,
On 9. Jun 2018, at 20:51, Jonathan Müller via Boost
wrote: I've been working on https://github.com/foonathan/type_safe for the past 20 months or so. What started as an experimenting ground for type safe programming facilities quickly turned into a general mix bag of utilities.
However, it became my most popular project, so there is something in there people find really useful. And with that multiple approached me wanting to have it added to Boost, so here I am.
I read your blog post with interest. I like the idea of strong typedefs and am conceptually with you 100 %. It is sad that there is no support planned for strong typedefs in the core language. So, this is great work and I think it would fit nicely into boost, but that's just my opinion.
I do realize that not all of it is suited for Boost: some of it has overlap with existing libraries (e.g. optional/variant), some of it has better implementations elsewhere (e.g. improved integer types) and some of it is to novel/experimental (e.g. stuff like constrained_type).
But there are some things that could be useful for Boost. I'm mainly thinking of the strong typedef facility.
Some quick remarks. In addition to what you already mentioned, I think the scope of your project, more precisely that of type_safe::integer, touches that of Robert Ramey's safe_numerics. Maybe you want to check it out and/or get in touch with him. https://github.com/robertramey/safe_numerics https://github.com/robertramey/safe_numerics Boost has boost.operators for adding operators to custom types. It seems to be similar to what you implemented. The current maintainer of boost.operators, Daniel Frey, also has an new version of that library in the works, see https://github.com/taocpp/operators https://github.com/taocpp/operators
I plan on splitting the library up into multiple parts anyway (see also https://github.com/foonathan/type_safe/issues/82), so please let me know whether there is anything you'd like to see being prepared for Boost.
I hope the core devs will chime in and give you feedback. I can say that there is a formal procedure to get new libraries added to boost, which is documented on the Boost webpage. It is a multi-step process and requires some reading. For starters, people here should express interest in your library. If initial interest is there, you would work on making sure that your library is compliant with Boost standards, e.g. compiles with boost.build, has documentation, is advertised on the Boost Incubator http://blincubator.com/, etc. Then you need to request a formal review, which will decide whether the lib will be accepted. Best regards, Hans