Antony Polukhin
184f7e43f0
Update copyright years
2026-01-04 11:10:09 +03:00
Antony Polukhin
1b804c7a31
Implement initial version of C++20 module boost.lexical_cast ( #84 )
2025-12-11 22:17:21 +03:00
Antony Polukhin
275844e651
Fix regression in unsigned short to wstring casting without wchar_t b… ( #92 )
...
…uiltin type
Fixes: https://github.com/boostorg/lexical_cast/issues/89
2025-10-16 09:15:33 +03:00
Antony Polukhin
1084d98719
More tests and fixes for floating-point special value conversions to integers and bool ( #91 )
...
Fixes: https://github.com/boostorg/lexical_cast/issues/81
2025-10-11 17:36:58 +03:00
Antony Polukhin
7f60da84c3
Run all the tests in CMake, add CMake runs into CI. Drop dependency on Boost.TypeTraits ( #90 )
2025-10-07 20:25:13 +03:00
Romain Geissler @ Amadeus
8fc8a19931
Reduce dependency on Boost.TypeTraits now that C++ >= 11 is required. ( #87 )
...
This allows to workaround the following error when using clang >= 21 on the following code:
```
#include <string>
#include <iostream>
#include "boost/lexical_cast.hpp"
enum SomeEnum
{
OneValue
};
int main()
{
std::cout << boost::lexical_cast<std::string>(SomeEnum::OneValue) << std::endl;
}
```
Results in:
```
/app/boost/include/boost/type_traits/is_signed.hpp:37:25: error: in-class initializer for static data member is not a constant expression
37 | static const no_cv_t minus_one = (static_cast<no_cv_t>(-1));
... (snapped)
/app/boost/include/boost/type_traits/is_signed.hpp:37:38: note: integer value -1 is outside the valid range of values [0, 1] for the enumeration type 'SomeEnum'
37 | static const no_cv_t minus_one = (static_cast<no_cv_t>(-1));
```
2025-10-05 12:14:47 +03:00
Antony Polukhin
4862e296d0
CI fixes ( #88 )
2025-09-08 09:02:39 +03:00
Antony Polukhin
5326b49475
Do not permit implicit conversions to floating point types in decltype(shl_real_type(x, buffer)) substitution ( fixes #82 ) ( #83 )
2025-05-13 19:32:21 +03:00
Antony Polukhin
1c89e3a56c
Update copyright years
2025-01-05 19:41:20 +03:00
René Ferdinand Rivera Morell
71a184d20f
Add support for modular build structure. ( #78 )
...
This is part of the effort to make the Boost libraries "modular" for build and consumption. See https://lists.boost.org/Archives/boost/2024/01/255704.php and https://github.com/grafikrobot/boost-b2-modular/blob/b2-modular/README.adoc for more information.
This PR depends on the following other PRs being merged to both develop and master branches of the respective repos:
- https://github.com/boostorg/boost/pull/854
2024-08-25 09:57:23 +03:00
Antony Polukhin
7f121f8ce3
Drop Boost.Integer dependency ( #79 )
2024-08-14 21:15:33 +03:00
Antony Polukhin
ff2f0496b0
Fixed conversion of std::basic_string_view and boost::basic_string_view containing one or more \0 characters.
...
Issue was introduced in 1.85.0
2024-07-07 20:08:13 +03:00
René Ferdinand Rivera Morell
92e55e842e
Add macOS testing. ( #75 )
...
Fixes https://github.com/boostorg/lexical_cast/issues/76
---------
Co-authored-by: Antony Polukhin <antoshkka@gmail.com >
2024-04-12 19:12:54 +03:00
Antony Polukhin
02e5821ab3
Do not use custom traits from input/output types as it leads to linktime or runtime errors ( fixes #46 ) ( #74 )
2024-02-15 11:50:10 +03:00
Antony Polukhin
3433c34b43
Suppress the unsigned-integer-overflow sanitizer warnings and do not recover from the integer sanitizer errors ( fixes #45 ) ( #73 )
2024-02-15 09:24:44 +03:00
Antony Polukhin
518e28ff79
Dropped dependency on Boost.NumericConversion and Boost.MPL ( #72 )
...
Fix some corner cases of floating-point conversions (infinities to infinities of smaller type, fractional numbers to integers)
2024-02-13 10:55:25 +03:00
Antony Polukhin
31e0fcde67
Optimizations for std::basic_string_view ans boost::basic_string_view (ref https://github.com/boostorg/lexical_cast/issues/30 ) ( #70 )
2024-01-26 20:16:50 +03:00
Antony Polukhin
f0862bb60d
Significant rewrite of the internal logic to separate optimized and C++ Standard Library IO-based streams ( #69 )
...
* C++ Standard Library based streams now constructed in less cases leading to **better performance**;
* less template instantiations and simpler maintainance;
* support for `volatile` input types was dropped, following the C++ Standard Library trend.
2024-01-24 22:35:41 +03:00
Antony Polukhin
fe9ee41f5c
Reduce template instantiations count by using template aliases ( #67 )
2024-01-21 14:23:33 +03:00
Antony Polukhin
90ec909dcf
Update copyright years
2024-01-07 13:22:00 +03:00
Antony Polukhin
a713e09eab
Update copyright years
2024-01-07 13:06:23 +03:00
Antony Polukhin
af5ce2a5fe
Drop C++03 and C++98 support ( #62 )
...
Also update tests to not use Boost.Test
2023-09-02 17:42:14 +03:00
Antony Polukhin
32e9b6d2a0
Update copyright years
2023-01-19 10:00:15 +03:00
Antony Polukhin
403d79edc7
fix compilation for casting volatile arithmetic types
...
Fixes #50
2022-09-01 13:53:46 +03:00
fanquake
b302988907
refactor: use core/noncopyable over boost/noncopyable
...
The later is deprecated:
```cpp
// The header file at this path is deprecated;
// use boost/core/noncopyable.hpp instead.
include <boost/core/noncopyable.hpp>
```
2022-08-24 12:34:18 +01:00
Antony Polukhin
a9f2961159
update copyright years
2022-01-30 13:03:00 +03:00
Antony Polukhin
f071fb83cf
typo fix
2021-05-03 19:10:31 +03:00
Antony Polukhin
ce73b6adfc
do not test 128bit integral types on MacOs because of the Apple Clang issue
2021-05-03 17:36:53 +03:00
Antony Polukhin
88f5967805
fix tests compilation on C++20 (wide char operator<< overloads are deleted)
2021-05-02 17:38:32 +03:00
Antony Polukhin
eb3bda9563
fixes for wide char tests
2021-05-02 13:13:30 +03:00
Antony Polukhin
c95b9adbab
fixes for CI runs
2021-04-26 20:56:15 +03:00
Antony Polukhin
945c095a4b
do not use Boost.Math in tests
2021-04-26 10:44:22 +03:00
Antony Polukhin
f0e2fa3dd3
make tests work in C++03 modes
2021-04-26 10:12:28 +03:00
Antony Polukhin
0d920e632f
disable long double tests on mingw64 because of the issues with precision
2021-01-07 18:37:24 +03:00
Antony Polukhin
2993c99813
disable long double tests on MinGW because of the issues with precision
2021-01-06 21:25:31 +03:00
Antony Polukhin
cb585ca6cb
disable long double tests on mingw64 because of the issues with precision
2021-01-06 12:04:51 +03:00
Antony Polukhin
29ddb588b2
add missing header
2021-01-05 17:21:20 +03:00
Antony Polukhin
9c38b33f65
remove trailing whitespace
2021-01-05 12:25:39 +03:00
Antony Polukhin
745b4dc4ac
workaround b2 issues with long filenames (again)
2021-01-05 12:21:37 +03:00
Antony Polukhin
e677e3fc89
workaround b2 issues with long filenames
2021-01-04 22:10:48 +03:00
Antony Polukhin
3dfb2a31ec
Make tests for typedefed wchar_t more reliable
2021-01-04 18:41:45 +03:00
Antony Polukhin
a96a262fdc
Modern Appveyor file
2021-01-04 11:11:24 +03:00
Antony Polukhin
08bce247f0
update copyright years
2021-01-03 14:20:39 +03:00
Antony Polukhin
4280c94a1a
Move Escape struct into a separate header and rename it to avoid collisions with Windows function name
2020-05-05 19:50:33 +03:00
Edward Diener
8ffb03760f
Avoid name conflict with Windows GDI function also called 'Escape' by referring specifically to struct type.
2020-04-04 04:50:01 -04:00
Edward Diener
ddf96e0307
Fixed type as struct to avoid conflict with Windows function name. Specified FILE as std::FILE when cstdio is being included.
2020-04-03 20:48:24 -04:00
Antony Polukhin
207d9845da
update copyright year
2020-01-18 14:08:35 +03:00
Nikita Kniazev
87707d7fb9
Run test with truly disabled exceptions
2019-12-02 20:59:34 +03:00
Antony Polukhin
7bcebb0bc2
inspect tool fixes
2019-11-15 13:35:57 +03:00
Antony Polukhin
87ce721928
More tests and comments for fs::path conversions (refs #25 )
2019-06-23 13:12:00 +03:00