Version 1.2.0 adds opaque typedefs for standard strings, one that prevents modifications via const char * and one that provides the complete interface. Find these in opaque::experimental. It also adds a header ostream.hpp to make std::ostream accept opaque typedefs via their underlying_type, and a header hash.hpp providing a macro OPAQUE_HASHABLE that will create a std::hash specialization for an opaque typedef.
As of release 1.1.7, the makefiles no longer try to create an empty archive, so the library is Mac-compatible. But see the wiki's notes section for some information about why "make check" doesn't work on Mac -- you need "make NORMAL_LINK= CXXFLAGS=-std=c++14 check" instead.
I am aware that this library currently does not work on Mac because the makefile tries to make and use an empty archive, but the archiver tool on Mac will not make an empty archive. I will, eventually, get my makefile generator fixed. Until then, my apologies!
Version 1.1.5 adds an "inconvertibool" type that works like and with bool, but not with other types like int. This is a safer substitute for built-in bool if you are concerned about implicit conversions of bool that may be bugs. Inconvertibool gives you the implicit conversions you want and prevents the implicit conversions you don't. By request of Christoph Weiss. Thanks for the suggestion!
With version 1.1.4, this library and its unit tests (finally!) compile as easily and warning-free under clang as under gcc. Choosing either compiler is as simple as setting CXX before running make.
Version 1.1.0 brings a reorganized directory structure that should meet most peoples' expectations better. It also makes converting from opaque type to underlying type for the arguments of binary operators free, rather than a copy construction (although this only matters for number-like user-defined types, and makes no difference for built-in types).
This library is still not Windows-friendly, owing to lack of expression SFINAE in Visual C++ 2015, and the unit test library doesn't work there either (as I haven't leared how to demangle names on Windows, yet). ... read more
I've updated the wiki to discuss the differences between this library and the N3741 language proposal for opaque typedefs.
Here is the video from my CppCon 2015 lighting talk:
https://www.youtube.com/watch?v=jLdSjh8oqmE
Following the enthusiastic reception of my CppCon 2015 lightning talk, I've created this project area to publish my C++11 numeric opaque typedef library. I will also be submitting it to the Boost Incubator.