321d5a087aFor X86 and X64 architectures, which permit unaligned loads and stores, unaligned little endian buffer and arithmetic types use regular loads and stores when the size is exact. This makes unaligned little endian buffer and arithmetic types significantly more efficient on these architectures.(Pull request from Jeremy Maitin-Shepard) Docs updated, but timing results have not yet been updated.
Beman
2015-01-06 16:57:53 -0500
0cdcb5f048Rename build directory to benchmark so will not automatically be built by b2 in boost-root.
Beman
2015-01-05 07:16:49 -0500
c440b3b7daUpdate modification date. Explicit updated needed because of FrontPage bug.
Beman
2015-01-04 09:26:49 -0500
a32c13451bRemove Release History details that are already covered by Mini-review page. Add FAQ for C++03 compiler support.
Beman
2015-01-04 09:15:28 -0500
04d079fa61Refactor "Choosing the approach" into its own page. It was dominating the main home page, yet is really a topic for study after other material is absorbed.
Beman
2015-01-02 10:46:53 -0500
48ea9cc333Beef up index.html TOC, add msg to publish.bat.
Beman
2014-12-17 16:26:33 -0500
79709fe054Add additional use case
Beman
2014-12-17 11:57:35 -0500
25a00586a2Replace local ref to boost.png with full URL so works for gh-pages and other environments where local ref is not available.
Beman
2014-12-17 09:21:28 -0500
dcde9463fcDo not define _SCL_SECURE_NO_WARNINGS or _CRT_SECURE_NO_WARNINGS if already defined (such as on the command line), plus related cleanups.
Beman
2014-12-10 10:26:49 -0500
c201455c84Change "in_place" to "inplace". Rationale: shortens names without impacting expressiveness.
Beman
2014-12-10 09:39:03 -0500
2cbcd6f7d3Rename "runtime_conditional_reverse" to "conditional_reverse". The differing number of arguments is sufficient to disambiguate the compile-time and run-time overloads.
Beman
2014-12-10 09:26:47 -0500
51b990eb50Add associated-files.vcxproj and related infrastructure so Visual Studio IDE find-in-files and replace-in-files works for associated files like headers and HTML files.
Beman
2014-12-10 09:00:43 -0500
c8d4ab2d11Add comment about Requirements so it won't be forgotten.
Beman
2014-12-10 08:40:56 -0500
dcca2835a9Rename "reverse_endianness" to "endian_reverse". Shorter but still plenty explicit. See bikeshed.txt for alternatives considered.
Beman
2014-12-10 08:30:30 -0500
e4466edf4eDrop the _unless_big and _unless_little functions. KISS. They were confusing, and less confusing names were never found.
Beman
2014-12-09 20:43:47 -0500
55a65c3806Revert to again supply the reverse_endianness_in_place template. This has the effect of providing a default reverse_endianness_in_place for user-defined types. Add error checking for UDT's to verify this works as desired. Provide a note in the conversion docs to that effect.
Beman
2014-12-09 11:36:42 -0500
e2045b7ffaFinalize buffer and arithmetic decomposition. Finalize name changes. Finalize test cases. Remove cruft. Docs still to do.
Beman
2014-11-26 10:04:33 -0500
bb785ed8e0UDT tests added. Passing on Windows, all local compilers.
Beman
2014-11-25 11:31:30 -0500
7b119ba0eeAdd full set of modify in place tests.
Beman
2014-11-25 09:58:59 -0500
56103a7bc6Finish conversion.hpp cleanup after name changes. conversion_test.cpp return-by-value tests reorganized and passing. UTD and in-place tests still to come. Add doc/bikeshed.txt to keep record of naming rationale.
Beman
2014-11-24 10:04:23 -0500
4197f996acMore conversion.hpp fixes. Some, but not all, conversion_test tests passing.
Beman
2014-11-23 10:38:21 -0500
ce73f59741Add "_endianness" to the names of the two customization points. These names must be defined in user namespaces (for ADL to work) and so must be much more explicit than names that are defined in namespace endian.
Beman
2014-11-23 08:40:58 -0500
f9c562b4b4Rework conversion.hpp: Make the UDT customization point for the value returning conversion functions much more explicit. Provide a separate UDT customization point for the in-place conversion functions, and reverse_in_place() overloads for the built-in arithmetic types. Eliminate the unsafe general-use reverse functions. With explicit customization points these are no longer needed. Complete the renaming of conversion functions started in the prior commit. The reverse and reverse_in_place names are much more meaningful and less likely to be misunderstood. The longer "reverse_in_place" name will hopefully at least slow users down before inappropriate (and possibly unsafe use, such as when trying to recover data after an exception).
Beman
2014-11-22 16:27:11 -0500
49a91c293aRename endian_buffer typedefs. New names a bit longer, but also a bit more explicit and more obviously related to endian_arithmetic typedefs.
Beman
2014-11-21 15:49:28 -0500
84faaa7bbfRename the conversion functions to discourage unthinking use of the in-place versions as these are unsafe in that they effectively break the type system by treating the buffer as an undescriminated union. Remove the synonym functions based on names popularized by BSD, OS X, and Linux since these are permitted to be implemented as macros, which would cause endless difficulties if encountered.
Beman
2014-11-20 15:38:25 -0500
8a9ea6747dPreliminary doc changes to reflect addition of buffers.
Beman
2014-11-19 15:58:15 -0500
fc7733ade1Major renaming. Class "endian" becomes class "endian_arithmetic" to mimic the C++ standard's description of such types as "arithmetic types". Rename header accordingly. The convenience typedefs have been changed shorten aligned names, as they are often being, but keeping the unaligned type names relatively short via a simple "_ut" suffix.
Beman
2014-11-19 10:53:11 -0500
61d9046348Remove "operator value_type() const noexcept" from buffers. Make the buffer ctor explicit. Buffers were requested by people who do not want automatic conversions because they want full control over conversions, and are very concerned about "efficiency".
Beman
2014-11-18 14:33:31 -0500
e9f6d2c37cRe-implement the endian types by inheriting from endian_buffer.
Beman
2014-11-15 21:04:19 -0500
561d8f7070Initial commit buffers.hpp and related infrastructure. A separate buffer class without arithmetic operators was requested during the formal review.
Beman
2014-11-15 08:02:08 -0500
f8e60ae4e9Switch to VC++ 2014, and clear a resulting shadow warning.
Beman
2014-11-14 14:23:36 -0500
31f930330dRefine "Choosing between endian types and endian conversion functions" docs.
Beman
2014-11-14 09:52:44 -0500
fff254cbc2Add metadata file.
Daniel James
2014-08-21 20:30:29 +0100
72a9095a03Fix tests that were backwards on big endian machines. Thanks to Lars Viklund for testing on three different big-endian systems.
Beman
2014-08-15 18:07:12 -0400
8ea7d201f9native_float32_t and native_float64_t, fixing issue #2.
Beman
2014-08-13 13:23:11 -0400
62943e150eDo a pass through docs, bringing up to date where needed.
Beman
2014-08-12 10:34:37 -0400
071099b656Remove commented out code residue from treating native as a synonym for big or little.
Beman
2014-08-12 08:29:24 -0400
d31caa413cAdd types native synonyms. All tests now passing, at least on a little endian machine.
Beman
2014-08-11 17:17:50 -0400
8e5cd7dfc4Treat "native" as synonym for "big" or "little" according to platform endianness, as suggested by Vicente J Botet. Converter_test working.
Beman
2014-08-11 16:21:04 -0400
108a0a6d90Update to reflect Boost moving to git and GitHub.
Beman
2014-08-11 10:12:53 -0400
f2dad97c44Upgrade to msvc 2013. Rename msvc2012 to msvc so directory doesn't have to be renamed each msvc release.
Beman
2014-08-11 10:01:24 -0400
8c36890e77Test and doc updates for Pierre Talbot's int8_t/uint8_t reverse_value() and templated reverse() patch.
Beman
2014-04-16 13:52:24 -0400
11fc1ea374Add overloads for int8_t and uint8_t (rational: useful with generic programming). Template the reverse function (same body in each overloads).
Pierre Talbot
2014-01-22 18:09:50 +0100
d339470e6eRemove "explicit" from Endian type constructors. Rationale: Having to write "cntr.insert(big_int32_t(value))" instead of "cntr.insert(value)" gets old fast when you are writing application code and the use case arises more or less continuously. Additionally, the use of an endian type is an implementation detail that should not leak into the application code that needs to create values of the type. Furthermore, the ambiguities that caused the constructors to be made explicit no longer occur; they were eliminated when BOOST_MINIMAL_INTEGER_COVER_OPERATORS was introduced to removed a dependency on boost/operators.hpp. If an ambiguity does arise, it is easy to clear via a static_cast or a function-style cast.
Beman
2013-09-06 10:36:54 -0400
22728f62e2Add breaking changes heads up
Beman
2013-09-01 09:10:00 -0400
79391248e0Add the build .bat files as a maintenance aid.
Beman
2013-09-01 08:44:27 -0400
016d3b2e7cRename the endian typedefs. Rationale: Subjective - during three months working on the B-tree library, the *un_t names were a constant source of irritation. Objective - the new scheme, which reverts the *un_t names to having no alignment decoration, provides consistent *_align* decoration for both FP and integer types. Also, the library now provides conversion functions which may reduce use of aligned endian types.
Beman
2013-09-01 08:40:32 -0400
d1d62f3adcUse detail::reverse_value() to implement reverse_value() for float and double, thus eliminating type-punning warning from gcc.
Beman
2013-06-07 15:46:14 -0400
457ed73778Add more UDT use examples. Link to UDT example in conversion function docs.
Beman
2013-05-29 09:04:31 -0400
fbedc9bb9fRemove another bin_manip file. Note that all the bin-manip files have been copied to git@github.com:Beman/bin-manip.git
Beman
2013-05-29 08:36:40 -0400