Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Check-ins with non-propagating tags:

Commit 2021-03-08 - Basic <ratio>, constexpr <algorithm>.
  • cxxomfort: Added: basic <ratio> implementation.
  • cxxomfort: Added support of CXXO_NOEXCEPT_NOTHROW when exceptions are disabled in some compilers.
  • algorithm: Fix updated to use fix::static_clamp .
  • algorithm: Added constexpr algorithms fix::static_count, fix::static_count_if, fix::static_find, fix::static_find_if.
  • iterator: Added fix::static_next , fix::static_prev to operate in constexpr with pointer-like iterators.
  • ratio: Added basic implementation.
Leaf check-in: bb51078f user: luismachuca tags: openwatcom_min_200, clang_min_400, msvc_min_1600, pre-release, gcc_min_406, testing, y2021
Commit 2020-13-01 - Welcome to 2020 + random( x in [0, 1) ) This release mostly adds (and removes) stuff from the <random> backports and supplements. Random is, by far, one of the worse parts of Standard C++ to backport to earlier revisions since the pre-C++11 implementations of TR1.Random in compilers such as MSVC or GCC were hopelessly, hilariously broken. It also adds a few global helpers for types such as <tt>basic_string</tt>. * cxxomfort: Dropped <tt>CXXOMFORT_VERSION</tt>. * cxxomfort: Fixed identification of Digital Mars 8.5x (Enhances: [5a766eb3bd] ).
  • cxxomfort: None is now of type cxxomfort::rvoid.
  • ctime: Fixed a narrowing conversion warning on MSVC.
  • random: Now offers partial implementation for pre-C++98 compilers like DMC and OW2 (Enhances: [5a766eb3bd] , [b8ea55b791] ).
  • random: Replaces broken TR1 components in MSVC and GCC.
  • string: Adds global helpers in namespace cxxomfort::string, for the member functions compare, replace, copy, substr, find, rfind.
  • string: Adds global helpers as above for C++20's member functions starts_with, ends_with.
  • string_view: Adds global helpers in namespace cxxomfort::string for member functions compare, copy, substr, find, rfind.
  • string_view: Adds global helpers as above for C++20's member functions starts_with, ends_with.
  • tuple: Added ignore, tie to pre-C++03 backports.
  • tuple: Fixed a missing (not implicitly generated) assignment operator for the pre-C++03 backport (when CXXOMFORT_USE_INTERNAL_TR1 is in effect).
  • tuple: Missing swap.
  • type_traits: Fixed common_type for MSVC 2015 and later (Enhances: [8376e0d9f1] ).
  • library:algorithm: Added p2187 swap_if() as a library interface, previously only in cxxomfort:utils.
  • library:random: Added inversive_congruential_engine and the hellekalek1995 specialization.
  • library:string: Added the global helpers for string and string_view compare, substr, find, and rfind.
  • library:string: Moved character functions to library:text.
  • library:text: Added module.
  • cxxomfort:utils: Added to static_math static_gcd parameter type extended from unsigned to uintmax_t.
  • cxxomfort:utils: Added to static_math extended_gcd.

More details in Changelog.txt. check-in: 8540354d user: luismachuca tags: msvc_min_1500, openwatcom_min_200, release, gcc_min_406, dmc_min_857, y2021

Commit 2020-12-14 - Eclipse Integration

This release adds more definite support for the Digital Mars C++ compiler (DMC) - the base featureset including nullptr works, as do the C++11 algorithms, the toolset in <array> and <iterator>, string_view and type_index. However, more advanced features such as everything in <functional> or <type_traits> are still not expected to function.

  • cxxomfort: Initial general compatibility with Digital Mars (Enhances: [5a766eb3bd] ).
  • cxxomfort: Now adds more CXXOMFORT_IMPLEMENTS_... macros.
  • cxxomfort: output_info() now moved to cstdio.
  • cxxomfort: Fixes cases of nullptr in pre-C++03 compilers.
  • cxxomfort: static_assert now potentially works with more compilers.
  • cxxomfort: Clang 4.x, 5.x now correctly detect more TR1 headers (Enhances: [5ba7743db6] ).
  • array: Fixed header causing errors in MSVC 2008 *with* SP1.
  • array: Now compatible with Digital Mars when using internal TR1 (Enhances: [5a766eb3bd] ).
  • cstddef: Fixed ssize_t already provided by OpenWatcom and Digital Mars(Enhances: [b8ea55b791] , [5a766eb3bd] ).
  • cstdio: Added header.
  • ctime: In Windows, now timespec_get() tries two different paths to obtain microsecond resolution, in case the first of them (SYSTEMTIME) is disabled.
  • memory: Reimplemented aligned_storage to take advantage of pragma pack in a few compilers that don't support alignment directives.
  • memory: Now has more deterministic, but still likely to be incorrect, defaults in pre-C++11 mode.
  • random: Added a pre-C++11 implementation of ranlux for future work and backporting, which ATM is not enabled.
  • string_view: Fixed including the header when in Clang >= 5.x with stdlibc++ (Enhances: [5ba7743db6] ).
  • system_error: Added a barebones enum errc, without members, for pre-C++98 mode.
  • type_traits: Some base traits disabled for Digital Mars because of no correct support for unbounded arrays (Enhances: [5a766eb3bd] ).
  • type_traits: Fixed hard fails due to incorrect or missing macros when support for backporting delay<>, underlying_type<> is enabled.
  • cxxomfort:utils: Added CXXO_FOREACH for Open Watcom (Enhances: [b8ea55b791] ).
  • cxxomfort:utils: Finalized interface for cstring_view (Fixes: [d1f6c0f628] ).
This release is called Eclipse Integration because it was released for the Dec 14 Eclipse of La Araucanía in 2020. Also, perhaps it works better with Eclipse (the IDE).
Detailed changelog in CHANGELOG.txt.
check-in: fd7c154f user: luismachuca tags: openwatcom_min_200, release, y2020, gcc_min_406, clang_min_304, dmc_min_848, msc_min_1500
Commit 2020-12-09 - The Alatreon Expansion

This release focuses on expanding both the built-in cxxomfort:utils, promoting array_ref and other utilities to this namespace, adding at_or(), as well as increasing compatibility with GCC 5.x and Clang 5.x.

Named as such because I finalized it after finally defeating Alatreon in MH3U.

More details in CHANGELOG.txt. check-in: 80ab485e user: luismachuca tags: clang_min_302, release, y2020, gcc_min_408, msvc_min_1600, stable

Commit 2020-09-20 - The COVID Fonda Release, hotfix#2

Affects:[11f57a70cf] [1cbdc0b48d] [8376e0d9f1]

Named as such because most of these changes were checked in while eating festive empanadas in the isolation of home.

This release corrects a number of issues hanging from the first COVID Fonda release, mostly caused by having to shuffle some #ifdef around. See CHANGELOG.txt. check-in: cf8a5499 user: luismachuca tags: trunk, release, gcc_min_408, msvc_min_1400, 2020, latest

Commit 2020-09-18 - The COVID Fonda Release

Named as such because most of these changes were checked in while eating festive empanadas in the isolation of home.

This is tagged as a major release, and includes a number of fixes in documentation and compatibility hooks. In particular, this version allows more tools to function in older compilers like MSVC 2005, and has initial support for GCC 7 and MSVC 2015.

  • cxxomfort:Added a larger featureset to Independent_Utilities including static math and regular void implementations.
  • cxxomfort:docs: Fixes and updates to the autogenerated documentation.
  • cxxomfort: Promoted foreach and i12n from Library to Cxxomfort:Utils.
  • cxxomfort: Compatbility fixes for std::string_view and some of the tools in <functional> under MSVC 2005. (Enhances: []).
  • cxxomfort: Initial compatibility test for MSVC 2015 (Enhances: []).
  • algorithm: Added shift_left(), shift_right() from C++20.
  • functional: Added bind_front(), experimental support, for C++11 onward.
  • functional: Added unwrap_ref_decay tha complements unwrap_reference.
  • utility: Added in_range().
  • library:tuple: Added tuple_push(), tuple_unshift.
  • library:tuple: Fixed tuple_pop() and tuple_shift to error out in the case of an 1-element tuple, as required for tuples in the Standard.
  • library:array_ref: Now implements a element_type and the other member typedefs in synchrony with what std::span does.
  • library:array_ref: Now can take a second template parameter IdxType = size_t to define view types with shorter indexes (for eg.: short memory models).
  • library:foreach: Promoted to Cxxomfort:Utils.
  • library:i12n: Promoted to Cxxomfort:Utils.
check-in: faf2b465 user: luismachuca tags: release, y2020, gcc_min_406, clang_min_308, msvc_min_1400, latest, 80ab485edece4fd5bbcbb71b1d953918e9feb294
Commit 2020-08-24 - Disabling stuff for older compilers until we can recheck development.

This build disables some functionalities, such as those in <type_traits, <tuple>, etc, in pre-C++03 compilers where we don't know, or need to re-check, the status of template support. See Per-Compiler Notes. check-in: acdbb39c user: luismachuca tags: trunk, gcc_min_404, clang_min_300, msvc_min_1500, openwatcom_min_200, release, y2020

Commit 2020-07-25 - Bugfixes and helpers for C++98.

Bugfixes and improvements on MSVC 2005, OpenWatcom compatibility. check-in: 9229196f user: luismachuca tags: release, y2020, bugfix

Commit 2020-07-24 - Fixes for C++20, Clang and MSVC.

Promotes ssize(), de-promotes make_array(), adds and fixes features to use under more recent Clang and MSVC versions. check-in: 22a54863 user: luismachuca tags: release, y2020, clang_min_400, gcc_min_408, msvc_min_1600, stable

Commit 2020-07-20 - One (1) is the lowest biggest thing.

Fixes a few issues in algorithm and adds to the base feature set. check-in: e6c8807a user: luismachuca tags: y2020, clang_min_400, gcc_min_505, pre-release

Commit 2020-06-18 - MSVC compatibility fixes and Geany-tag fixes.

Changes in CHANGELOG.txt. check-in: 98e4fb9c user: luismachuca tags: trunk, y2020, clang_min_400, gcc_min_408, msvc_min_1600, geany_tags, tagfiles

Commit 2020-06-12 - Not the isolation that kills your commits
  • cxxomfort: Fixed an error with the previous release where cxxomfort's cstdint is ignored and a potentially non-existing stdint.h is included in MSVC < 2010.
  • cxxomfort: Now implements a SD-6 header that tests for and backports some of the SD-6 support macros.
  • cxxomfort: Added cxxo-utils.hpp with some base utilities.
  • cxxomfort: Added outp<T>.
  • cxxomfort: Added CXXO_TYPEOF_OR(), CXXO_AUTO_OR macros.
  • algorithm: Added fix / helper ct_clamp.
  • cerrno: New implementation of errc picks most enumerator values and errno names from the underlying system.
  • system_error: Minor simplifications to the code when in C++<11.
  • library:array_ref: Now supports index types shorter than size_t (via default template parameter), for eg.: small-buffers.
  • library:fixed_vector: Now supports index types shorter than size_t (via allocator), for eg.: short-allocator or small size vectors.
  • library:typesafe_enum: Fixed a missing dependency in C++<11.
  • library:tuple: Fixed implementation of tuple_shift for C++03.
  • library:tuple: Fixed a bug in tuple_pop where the first element of the returned tuple would always be default-constructed.
  • tags: Updated tags.
check-in: 70919e9e user: luismachuca tags: trunk, release, y2020, clang_min_400, gcc_min_408, geany_tags, msvc_min_1700
Commit 2020-02-27 - The 27F Release [1].
  • cxxomfort: No longer needs or uses a TR1 forwarder. Note this is a breaking change. (Closes: [5a9e81910e]).
  • cxxomfort: Base components now no longer rely on any header inside impl/.
  • cxxomfort: portable stdint header moved to new vendor/ folder.
  • cxxomfort: explicit_cast support now correctly checked in when Clang announces explicit operators as an extension, for compatibility and for avoiding warnings (Enhances: [f245681931]) (See also: [1cbdc0b48d], [5ba7743db6)). * functional: Added missing namespace std connection to <tt>invoke</tt>. * functional: Added partial <tt>invoke</tt> emulation for C++03. * functional: <tt>invoke()</tt> implementation moved to its own file for clarity. * functional: <tt>invoke()</tt> now uses std version when in C++>=17. * ostream: Added, with implementations of <tt><ostream></tt>-dependent functionality in other headers. * string_view: Now works with Open Watcom (Enhances: [b8ea55b791]).
  • tuple: Partial implementation of tuple_cat for C++03.
  • type_traits: Added is_[bounded/unbounded]_array from C++20.
  • type_traits: Added remove_cvref from C++20.
  • type_traits: Added remove_all_extents from C++11.
  • type_traits: Added fix to_bool(), to_integral() for pre-C++11 integral_constant.
  • type_traits: Enabled OpenWatcom to default missing intrinsics to false_type when using cxxomfort's internal TR1 (Enhances: [b8ea55b791]).
  • utility: Changes to integer_sequence implementation to compile better under C++11.
  • utility: integer_sequence now uses std version when in C++>=14.
  • library:algorithm: Add is_clamped from p1440 .
  • library:algorithm: Add clamp_halfopen and is_clamped_halfopen, half-open interval clamping operations complementary to std::clamp.
  • library:tuple: Partial implementation of tuple_pop, tuple_shift for tuples up to 5 elements.
  • library:tuple: Now clearly exposes types for tuple pop, push, shift and unshift operations.
  • impl: Moved type_traits from util to the impl directory.
  • impl: Reworked type_traits.

This is the first "major" release of cxxomfort for 202x and thus it is marked as release and trunk. Users pulling from the default repo should be able to upgrade automagically.

There are a number of major, "shaking" changes starting with this version which feature what could be considered the "final" structure for the project. Among the most important:

* The baseline is now more streamlined. In fact, it is possible from now on to set up a minimal base with only the cxxomfort basics by keeping only these five files and folders:
cxxomfort.hpp, base.hpp, config.hpp, base/, config/. * Starting this version cxxomfort no longer requires a TR1 forwarder (and in fact, might not even work with one) when working with compilers in pre-C++11 mode that require one (see Per-Compiler Notes in the wiki). * Conversely, when needing a TR1 implementation (such as in pre-TR1 compilers), the library now honors the previously unsupported macro CXXOMFORT_USE_INTERNAL_TR1 which enables automatically a minimum TR1 featureset. * The compiler now discerns between a C++98/03 mode with TR1 support available ("C++2007"), normal C++98 mode, and a C++ mode without C++98 support ("pre-1997"). This distinction is mostly relevant for compilers such as MSVC <= 2008 and OpenWatcom. * Some files from external sources are now moved to a vendor directory space. * When on Windows, the library now requires and enforces the value of the __STDC_LIMIT_MACROS macro.

This release has been tested on: GCC 4.6 to 5.5 in C++03 mode; GCC 4.6 to 6.0 in C++11 mode; GCC 6 in C++14 mode; MSVC 2008 SP1; MSVC 2012; MSVC 2013 (partially); clang 3.0 to 3.4 in C++03 mode; clang 3.2 to 4.0 in C++11 mode; clang 4.0 in C++14 mode; Open Watcom CI release (partial).

The autogenerated documentation ( is updated for this release.

Planned updates for the future:

  • Evaluating in full invoke() for C++03.
  • Backporting shift operations from <algorithm> down to at least C++11.
  • Backporting bind_front() down to at least C++11.
  • Backporting bit_cast() down to at least C++11.
  • A true arithmetic type with sizeof()==1 (à-la signed/unsigned char).
  • p0192 "short floats" (16-bit floating point types for storage only).
  • p1402 "cstring_view" (view of native C++ strings).
  • Refining is_contiguous_sequence.
  • "Moving" accumulate and partial_sum as per p0616.

[1] "27F": The release coincides with the 10th anniversary of the 27F Event or Great Cobquecura Earthquake of 2010 (2010-02-27): see . This is why I say it is a shaking release. check-in: 4dad71eb user: luismachuca tags: trunk, clang_min_302, msvc_min_1500, openwatcom_min_200, release, y2020, gcc_min_406

Commit 2020-02-04 - Compatibility improvements for MSVC 2012, GCC 6.x [2]
  • Fixed missing hexdump.hpp.
check-in: 2e1ff340 user: luismachuca tags: msvc_min_1500, release, y2020, gcc_min_408, tagfiles, gcc_max_605, msvc_max_1700
Commit 2020-02-04 - Compatibility improvements for MSVC 2012, GCC 6.x.
  • cxxomfort: Added better compatibility with GCC in C++14 mode (Enhances: []).
  • cxxomfort: Added better detection of MSVC 2012 and MSVC 2013 (Enhances: [70b70d8017]).
  • cstddef: Moved CXXOMFORT_IMPLEMENTS_decltype from utility.
  • cstddef: Moved to_byte to fixes (cxxomfort::fix).
  • ctime: Now uses POSIX timespec functions when in POSIX env.
  • ctime: Now implements timespec_get() in terms of GetSystemTime() when in Windows env.
  • memory: Fixed make_unique double / conflicting definition in GCC C++14 emulation mode (Enhances: []).
  • numeric: Fixed an issue where the template argument names for gcd, lcm cause conflicts in MSVC >= 2010.
  • string_view: Fixed a copy-ctor and assignment compilation error due to partial constexpr support (see library:array_ref).
  • string_view: Fixed missing reverse iterators.
  • system_error: Fixed an issue where code including the header would not compile if it was the only backported header it was using.
  • tuple: Fixed get<type>(tuple<...>) not being backported to C++11 in GCC≥5.
  • tuple: Fixed get<type>(tuple<...>) clashing with GCC 6.x in C++14 emulation mode (__cplusplus==201500) (Enhances: []).
  • tuple: Fixed make_from_tuple not being backported to C++11, C++14 in GCC≥5.
  • utility: moved CXXOMFORT_IMPLEMENTS_decltype to cstddef.
  • library:algorithm: Added [any,all,none]_on.
  • library:array_ref: Made front, back noexcept where available.
  • library:array_ref: Added size_bytes member function, adapting from C++20 span.
  • library:array_ref: Added a workaround for GCC bug on "defaulted declaration differs" for GCC < 7 (see [E1])
  • library:array_ref: Added missing operator==, operator!=.
  • library:functional: Fixed anachronistic parameter passing in constant_fn().
  • library:numeric: static_min, static_max now take up to 10 arguments.
  • library:utility: Added hexdump, hexload.
  • library:utility: Added utility typedefs bytes_view, const_bytes_view and utility function as_bytes_view().

[E1] check-in: f22f0a4b user: luismachuca tags: msvc_min_1500, release, y2020, gcc_min_408, tagfiles, gcc_max_605, msvc_max_1700

Commit 2020-01-13 - The “don't ask me for documentation fixes, I don't have 2020 vision” release.
  • cxxomfort: Added detection of Clang 4.x with some features.
  • cxxomfort: CXXOMFORT_VERSION now copies CXXOMFORT_DATE.
  • config: Slightly improved detection of Clang __has_extension.
  • algorithm: Fixed any_of returning always true (Fixes: [98efdadf5b]).
  • functional: Fixed missing connection of documentation for heterogeneous functors.
  • iterator: Defined and documented the behaviour of fix:is_contiguous_access_iterator for "checked" iterators.
  • limits: Fixed missing documentation for integral_limits.
  • memory: Fixed documentation for the to_bool fixes.
  • system_error: Fixed Doxygen marking for the category functions.
  • library:functional: Fixed missing connection of documentation for heterogeneous functors.
  • library:iterator: Added at_or() adapter.
  • library:tuple: Fixed missing Doxygen marking for tuple_pop, tuple_shift.
  • library:utility: Added valcmp (also in library:algorithm).
  • library:array_ref: Fixed constructors in accordance to n3334.
  • library:function_ref: Added support for 3, 4, 5-args functions.
  • library:typesafe_enum: Corrected default constructor as per [expr.type.conv] and .
  • tags: Added tags for new features in library:functional.
  • tags: Updated cxxomfort tags for new fix / assists.
  • tags: Removed references to CXXOMFORT_VERSION.
  • doc: Updated autogenerated documentation.
  • LICENSE: Now reflects year 2020.
This release marks the opening of (pre-)releases to be marked with the 'y2020' tag.
check-in: 4817fec6 user: luismachuca tags: trunk, gcc_min_404, msvc_min_1500, release, y2020, clang_min_303
Commit 2019-11-11 - .at() the end of year _or close.
  • cxxomfort: CXXOMFORT_CXX_EMULATION now returns >=2007 for C++98/03 mode with TR1, where possible.
  • cxxomfort: library is now **not** included autimatically. It must be included explicitly even with cxxomfort.hpp.
  • algorithm: Added count, count_if from C++20 (fixes: [ac8af64591]).
  • algorithm: Tentatively marking find, count algorithms as constexpr for C++14.
  • array: Fixed a wrong call to lexicographical_compare in pre-TR1 implementation.
  • iterator: Added contiguous_iterator_tag. Note that pre-C++17 Standard code would not know how to use it.
  • iterator: Added make_reverse_iterator from C++14.
  • random: Fixed a missing cxxomfort::fix in certain compilers in C++11 mode (enhances: [5ba7743db6] Clang-4.x support, GCC-6.x support).
  • string_view: Added .at_or().
  • library:array_ref: Added .at_or().
  • library:fixed_vector: Added .at_or().
  • library:fixed_vector: Made size, empty accessors constexpr.
  • library:tuple: Implemented variadic versions of tuple_shift, tuple_pop.
  • library:utility: Added make_simple_pair.
check-in: 1dfa7ad4 user: luismachuca tags: trunk, y2019, clang_min_302, gcc_min_404, gcc_max_600
Commit 2019-08-25 - Looking for a more independent solution.
  • cxxomfort: Warning: this commit breaks for Clang.
  • cxxomfort: Renamed CXXO_COMPILER_SUPPORT_cstd_... to CXXO_CXXSTDHEADER_... .
  • cxxomfort: Reworked some macros related to TR1 and its headers/namespaces to be more uniform.
  • cxxomfort: Taken the first steps in removing the need for a TR1 forwarder, with <array>.
  • array: Fixed detecting an <array> that is not there in MSVC 2005 (enhances: [11f57a70cf]).
  • array: Testing removal of requirement for a TR1 forwarder in the header.
  • cerrno: Added header, with definitions of some later POSIX error code macros for MSVC (enhances: [11f57a70cf]).
  • functional: Fixed visibility of (tr1::)hash when in GCC/Clang with TR1.
  • functional: Added baseline implementations for reference_wrapper, hash when before C++03.
  • random: Fixed detecting a <random> that is not there in MSVC 2005 (enhances: [11f57a70cf]).
  • random: Testing removal of requirement for a TR1 forwarder in the header.
  • type_traits: Testing ability to fake some intrinsics for is_enum, et al, in OpenWatcom (enhances: [b8ea55b791]).
  • system_error: Removed a warning of conversion to bool when in MSVC.
  • utility: Fixed make_integer_sequence et al, to use C++11 using... = where appropriate.
  • library:array_ref: Made def-ctor trivial in C++11 and do the "right thing" in <C++11.
check-in: deb47099 user: luismachuca tags: trunk, y2019, gcc_min_404, pre-release, msvc_max_1700, msvc_min_1599
Commit 2019-08-22 - A forgotten error in <memory>.
  • config: Updated some changes to documentation.
  • memory: Fixed a wrong argument name in uninitialized_default_construct.
  • system_error: Fixed errc not default-constructing to zero in C++03 like enums do.
  • docgen: Improved documentation for library:tuple, library:typesafe_enum.
check-in: d5fcc075 user: luismachuca tags: trunk, y2019, clang_min_302, gcc_min_404, openwatcom_min_200, docgen
Commit 2019-02-20 - Minor documentation updates.
  • cxxomfort: Updated /doc/trunk/cxxomfort/LICENSE.txt.
  • cxxomfort: Deprecated some extras/ headers.
  • cxxomfort: Removed the extras/ headers for array_ref, foreach, forward_list and optional.
check-in: 65b214ce user: luismachuca tags: trunk, y2019
Commit 2019-02-14 - Minor fixes.
  • cxxomfort: Fixed version values.
  • config: Added detection values for type-related compiler intrinsics.
check-in: 6530abeb user: luismachuca tags: trunk, y2019
(no comment) check-in: 26454986 user: luismachuca tags: trunk, y2019, gcc_min_404, msvc_min_1500, msvc_max_1700, gcc_max_505, openwatcom_min_109, testing
Commit 2019-02-13 - Love-- for OpenWatcom; various minor fixes.
  • cxxomfort: Updated CHANGELOG.txt which missed out an update.
  • cxxomfort: Initial compatibility testings for MSVC 2005 compatibility (has no TR1).
  • config: CXXO_INCLUDE_SYS notices got demoted to notice level 3.
  • config: Added basic detection of MSVC 2005 (still not supported).
  • base: Base feature implementation notices got demoted to notice level 4.
  • cstddef: Reimplemented std::byte, with better compatibility for C++<97.
  • cstddef: Added std::byte support for MSVC 2005.
  • array: Added support for MSVC 2005.
  • system_error: Fixed forwarding of @ref cxxomfort::fix::errc for MSVC 2012.
  • type_traits: Added support for the "primary" traits in MSVC 2005.
  • library:algorithm: Add p1223 find_backward().
  • library:algorithm: Add p1223r0 find_not().
  • library:algorithm: Add lwg217 find() (binary predicate form).
check-in: 0ad1617a user: luismachuca tags: trunk, y2019, gcc_min_404, msvc_min_1500, msvc_max_1700, gcc_max_505, openwatcom_min_109, testing
Commit 2019-02-04 - Barebones implementations for C++<1997, and some compatibility fixes.
  • cxxomfort: Fixed identification of OpenWatcom 1.9, 2.0 (Per-Compiler Notes).
  • cxxomfort: Added a separate header for code generation macros.
  • array: Added barbeones feature for Watcom (Per-Compiler Notes).
  • cstddef: Pending extend backport of std::byte.
  • functional: Fixed transparent functors detected in MSVC 2013.
  • random: Disabled temporarily in C++<1997 mode.
  • string: Added operator<< for Watcom.
  • string_view: Reimplemented for C++<1997 mode.
  • string_view: Fixed ostream operator for C++<1997, basic_ostream<char> only.
  • system_error: Disabled in <1997 mode.
  • tuple: Disabled in <1997 mode (Per-Compiler Notes).
  • library: Disabled temporarily in <1997 mode (Per-Compiler Notes).
check-in: d5f10c30 user: luismachuca tags: trunk, y2019, pre-release, msvc_max_1700, gcc_max_505, clang_max_303
Commit 2019-02-01 - All these fixes have some traits in std::common.
  • cxxomfort: Fixed detection of Clang 3.x, 4.x and features.
  • cxxomfort: Fixed detection of namespace tr1 in Clang C++03 mode, STDLIB mode.
  • cxxomfort: Fixed to_byte missing cxxomfort::fix.
  • cxxomfort: Improved documentation.
  • config: Fixed the definition of CXXO_TYPEOF and scenarios.
  • config: Fixed (partial) OpenWatcom seeing C++03 features it can't compile with (templates).
  • cuchar: Fixed detection of typedefs in Clang (< 5.0).
  • functional: Fixed usage of tr1::hash in Clang C++03 mode.
  • memory: Fixed hash<unique_ptr> (C++03, MSVC, Clang).
  • string: Fixed hash<basic_string< > > (C++03, Clang).
  • type_traits: Fixed detection of traits in Clang in C++03 mode.
  • type_traits: Fixed forwarding of common_type for MSVC >= 2012.
  • library: Fixed type_name for Clang (< 5.0).
  • TBA: cxxomfort: Adjust for Clang with LIBCXX, in C++03 mode.
check-in: f5381a77 user: luismachuca tags: trunk, y2019, pre-release, msvc_max_1700, gcc_max_505, clang_max_303
Commit 2019-01-28 - New year, new major, fix::ing some stuff.
  • cxxomfort: Added basic identification for OpenWatcom C++.
  • cxxomfort: Deprecated VERSION.txt.
  • cxxomfort: Removed the deprecated *fn.hpp headers in library/.
  • tags: Updated tags file with new version, containing only the library functions.
  • tags: Added cxxomfort-macros.cpp.tags with the configuration and code generation macros.
  • functional: Moved hash to cxxomfort::fix.
  • random: Added cxxomfort::fix for shuffle_order_engine, knuth_b for MSVC 2010.
  • type_traits: Move cxxomfort's common_type to cxxomfort:fix.
  • type_traits: Fixed cxxomfort::fix::common_type to recurse from the left instead of from the right, as per cppreference.
  • type_traits: Added remove_cvref from C++20.
  • library: Removed make_array_ref.
  • library: Added functional: equivalent_equal_to.
  • library: Moved randint() and related utilities to lfv2 namespace.
  • library: Added utility: simple_pair.
  • TBA: cstdio fix:: for vsnprintf.

This is the first commit to be tagged as "pre-release", in preparation to what could reasonably be called cxxomfort v1.0.

Starting with this version, we'll hopefully also see more isolated, atomic commits, in particular when it comes to features that have to go inside the fix:: namespace. check-in: 4dc2d6a4 user: luismachuca tags: trunk, y2019, pre-release, msvc_max_1700, gcc_max_505