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