
Please, if you have the time, download this library and give it a try. Any comments, or information upon its compatibility (or lack thereof) with compilers which are or are not listed would be greatly appreciated.
I started playing with your library using gcc 4.7.1 and it seems compatible. I will definitely want to use it instead of my own unfinished and probably buggy implementation. A few questions: 1) Could the programmer be given access (through member functions) to the two members of a large_int? For example, I need a function to swap the high and low bits of an integer-like value x. When x is of type large_int<T, T>, I guess it would be more efficient to manipulate directly the two members x.m_lo and x.m_hi instead of using the usual bit-operations. 2) The typedef for l[u]int128_t does not seem to use the builtin corresponding type when available, could this be done? 3) I had "undefined symbol" problems when using the builtin 128 bits integers (provided by gcc) in the signature of functions in a shared library (it was a module created with Boost.Python, the problem occurred when importing this module within python). The only solution I found was to wrap integer-like types inside a (templated) class, which looks like a particular case of your library (this would be "large_int<EMPTY_TYPE, U>"). Would LargeInt be an appropriate place to solve this problem? 4) Why use Boost.Operator for some operators but not all (e.g. comparison operators)? Thanks, Rafael