Commit Graph
33 Commits
Author SHA1 Message Date
Peter Dimov d40a3ac3f4 Switch the parameter order of endian_store 2019-04-30 05:13:47 +03:00
Peter Dimov b29b3dfc10 Move all deprecated names to endian.hpp; add deprecated_test.cpp to test/Jamfile 2019-04-29 00:36:21 +03:00
Peter Dimov 43d21860a4 Do not #pragma pack(1) before including headers 2019-04-27 22:37:40 +03:00
Peter Dimov 6b5792647c Simplify endian_buffer specializations 2019-04-27 20:11:41 +03:00
Peter Dimov f77a318c37 Remove BOOST_ENDIAN_LOG 2019-04-27 19:28:49 +03:00
Peter Dimov 95178e3cfb Add endian_store, use it in buffers.hpp 2019-03-12 20:21:11 +02:00
Peter Dimov 019fb85ea9 Add endian_load, use it in buffers.hpp 2019-03-12 19:42:35 +02:00
Peter Dimov e08864d648 Fix msvc warnings 2019-02-19 01:13:31 +02:00
Peter Dimov dafb9b1795 Use unsigned char in store_{big,little} 2018-12-06 20:44:42 +02:00
Peter Dimov 96c2e6dacb Cosmetic fixes 2018-12-06 20:34:15 +02:00
Peter Dimov 9f67f19d35 Merge branch 'unaligned-big-endian' of https://github.com/wijagels/endian into feature/pr-31 2018-12-06 19:57:58 +02:00
Peter Dimov 2837f3b9c5 g++ 4.5 and earlier do not support unrestricted unions 2018-09-11 20:18:13 +03:00
Peter Dimov 07ec535600 boost/predef/detail/endian_compat.h is deprecated; switch to boost/predef/other/endian.h 2018-09-11 18:54:54 +03:00
William Jagels 327b501169 Take advantage of unaligned load/store for big endian 2018-03-24 20:41:40 -04:00
Peter Dimov e93f6a2270 Fix unaligned loads and stores 2017-12-23 18:40:09 +02:00
Peter Dimov 134b225378 Shifting a negative number is an -fsanitize=undefined violation, use the unsigned type 2017-12-22 16:24:21 +02:00
arvidn 4b4123a0fa [cleanup] remove trailing whitespace from source code files 2017-11-04 13:07:54 +01:00
Beman 01f7e359bb Update docs to reflect removal of floating point support from 1.58.0 2015-03-25 08:05:49 -04:00
Beman 5caf1d16c8 Remove floating point support for boost 1.58.0. As currently implemented, return by value operations are not reliable because normalization and other bit pattern changes can occur. Docs not updated as yet. Floating point support will be corrected and reinstated for boost 1.59.0, based on in-place customization and inplace and/or copy signatures to replace the unsafe (i.e. native_to_big/little ) by value returns. The big/little_to_native return by value functions are safe, but require reimplementation. 2015-03-24 17:24:56 -04:00
Beman 9c0cbae556 Revert the default (*_t) types to unaligned, and used *_at to identify the aligned types. See mini-review thread for rationale. 2015-02-23 07:24:17 -05:00
Beman b0ef03b9d6 Rearranges rows and columns in tables. Add big_int8_t, big_uint8_t, little_int8_t, little_uint8_t arithmetic and buffer types, in response to mini-review query. 2015-02-16 19:31:48 -05:00
Beman adee2fe513 Add support for deprecated names from pre-review releases. 2015-01-18 19:48:27 -05:00
Beman 35f4c47a22 Add endian_buffer stream inserter and extractor, beef up buffer_test a bit. 2015-01-17 10:25:29 -05:00
Beman 321d5a087a For 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. 2015-01-06 16:57:53 -05:00
Beman 6c173766e3 Eliminate gcc -Wconversion warnings. 2014-12-10 15:03:06 -05:00
Beman f0532a3854 Improve comments. 2014-12-09 07:08:41 -05:00
Beman db16b51b41 Tweak comments. 2014-12-05 09:05:05 -05:00
Beman e2045b7ffa Finalize buffer and arithmetic decomposition. Finalize name changes. Finalize test cases. Remove cruft. Docs still to do. 2014-11-26 10:04:33 -05:00
Beman 49a91c293a Rename endian_buffer typedefs. New names a bit longer, but also a bit more explicit and more obviously related to endian_arithmetic typedefs. 2014-11-21 15:49:28 -05:00
Beman fc7733ade1 Major 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. 2014-11-19 10:53:11 -05:00
Beman 61d9046348 Remove "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".
Add "operator value_type() const noexcept" to the endian arithmetic types. These types are used by people who do want fully automatic conversions. The arithmetic types need to be drop-in replacements for the built-in arithmetic types for these users.
2014-11-18 14:33:31 -05:00
Beman e9f6d2c37c Re-implement the endian types by inheriting from endian_buffer. 2014-11-15 21:04:19 -05:00
Beman 561d8f7070 Initial commit buffers.hpp and related infrastructure. A separate buffer class without arithmetic operators was requested during the formal review. 2014-11-15 08:02:08 -05:00