
Matias Capeletto wrote:
There are actually two relation classes: "mutant_relation", that uses this almost-standard guarantee when possible and "standard_relation" that is standard compliant. You can read more about this here:
http://cablemodem.fibertel.com.ar/mcape/boost/libs/bimap/boost_bimap/rationa...
The idea is to switch between this two classes at compile time using a conservative approach, so the library can get the standard compliant label. You can see the switching mechanism here:
http://cablemodem.fibertel.com.ar/mcape/boost/libs/bimap/doxydoc/relation_8h...
At this point it is very conservative, and I think it is downgrading to the slower relation in cases where this can be avoided (for example, if you do not have 1 byte alignment). Less conservative checks can be developed in the future.
Looks like you're way ahead of me. BTW almost no compilers use 1 byte alignment. John.