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

19 descendants of [d22509b5]

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.
Leaf check-in: 65b214ce user: luismachuca tags: trunk, y2019
Commit 2019-02-15 - Love++ for strings of documentation.
  • cxxomfort: Improved code documentation.
  • cxxomfort: Added Doxygen-generated documentation (see below).
  • memory: Added detection of shared_ptr and other <tr1/memory> utilities for GCC.
  • string: Added missing output operator to std::string under Watcom (enhances: [b8ea55b791]).
  • string: Added to_string support under Watcom (enhances: [b8ea55b791]).
  • string: Added to_string support under MSVC 2005.
  • typeindex: Added minimum std::type_index support under Watcom (enhances: [b8ea55b791]).
  • typeindex: Added minimum std::type_index support under MSVC 2005.

Starting this revision cxxomfort offers a copy of the Doxygen generated documentation for the interfaces via unversioned files. The contents are reachable via /uv/html/.

While compilers like MSVC 2005 and OpenWatcom do not have TR1 and thus are not supported, the current build organizes things so that more of the core features can be used before a hard fail. In particular, byte, declval, string_view, to_string and in the future in a limited manner reference_wrapper, errc and unique_ptr should be at least minimally usable. check-in: b1a27cd4 user: luismachuca tags: trunk

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, gcc_max_505, msvc_max_1700, y2019, gcc_min_404, msvc_min_1500, 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, gcc_max_505, msvc_max_1700, y2019, gcc_min_404, msvc_min_1500, 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, gcc_max_505, msvc_max_1700, pre-release, y2019, 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, gcc_max_505, msvc_max_1700, pre-release, y2019, 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, gcc_max_505, msvc_max_1700, pre-release, y2019

Commit 2018-12-31 - A year ends in function.
  • cxxomfort: Most of the code in Features (not in Supplementals) has been edited to not require using.hpp.
  • config: Fixed an error that undefined "emulation" mode in GCC 4.7 to 4.9 when using "-std=c++11" rather than "-std=c++0x".
  • config: Minor fixed for GCC 4.4, even if still unsupported.
  • array: Added file.
  • functional: Added std::invoke for C++11, C++14.
  • functional: Added std::not_fn from C++17.
  • random: Added std::default_random_engine to C++03.
  • string_view: Removed constexpr from member functions that can't support it in C++11.
  • string_view: Added relational operators.
  • library:algorithm: Added valcmp (generic version of strcmp, memcmp).
  • library:algorithm: Added erase, erase_if from Fundamentals V2.
  • library:functional: Added function_ref from llvm.
  • library:functional: Added function_caller, function_facet.
  • library:random: Added numerical_recipes, MMIX typedefs for lcg.
  • library:random: Added splitmix64, from Sebastiano Vigna.
  • library:random: Added reseed, randint from Fundamentals V2.
check-in: b64fff24 user: luismachuca tags: trunk
Commit 2018-12-22 - Various fixes.
  • cxxomfort: Removed deprecated header files.
  • cxxomfort: Documentation fixes.
  • string_view : Added find, rfind.
  • typeindex: Fixed relational operators which caused compilation error in GCC 03 mode.
check-in: e1adbc84 user: luismachuca tags: trunk
Commit 2018-12-18 - Minor fix.
  • library: Fix inclusion of ssize header.
check-in: e00700a4 user: luismachuca tags: trunk
Commit 2018-12-18 - Hashing out changes and stringing along (3/3).
  • cxxomfort: output_info now uses printf instead of ostream.
  • cxxomfort: Added macros NOTHROW and OPEN/CLOSE_STDTR1.
  • cxxomfort: Fixed implementation of _CONSTRUCTOR generator macros.
  • cxxomfort: Added cuchar, string_view.
  • cxxomfort: Fixed implementations in impl/ to not depend on library/ for easier decoupling.
  • cstd: Fixed byte, typesafe_enum non-dependent on library/, use impl/ instead.
  • config: Added better detection of MSVC 2008 w/o SP1, Digital Mars.
  • config: Added patched header for MSVC 2010 <system_error>
  • cuchar: Added header: char16_t, char32_t backport as typedefs.
  • functional: Added a specialization-friendly version of hash<>.
  • functional: Added cxxostd::hash<> for charn_t types (C++11).
  • functional: Added cxxostd:hash<> for enum types (C++14).
  • memory: Added to_bool assist to unique_ptr.
  • string: Added hash<> spec for u16string, u32string (C++11).
  • string_view: Added header: string_view with a preview interface (C++17).
  • system_error: Fixed missing elements to the interface of error_condition.
  • system_error: Added some missing errc identifiers for MSVC 2008.
  • system_error: Added support cxxomfort::errc to deal with wrong errc defintion in MSVC 2010.
  • library:array_ref: Added new members to array_ref for slicing, substring.
  • library:foreach: Added "auto"-esque for the compilers that can support it.
  • library:iterator: Added the p1227 proposal for global ssize.
  • library:type_name: Changed implementation to use string_view.
check-in: 575605ad user: luismachuca tags: trunk
Commit 2018-11-25 - Heading on, hashing out the future. Preparation for large-scale project changes (2/3).
  • cxxomfort: Added implementation of std::type_index.
  • cstd: Added minimal <typeindex>.
  • functional: Fixed CXXO_IMPLEMENTS_ flag for heterogeneous functors impl (n3421).
  • iterator: Moved cbegin, cend out of base and marked as backports (C++14).
  • iterator: Moved rbegin, rend out of base and marked as backports (C++14).
  • memory: Added missing == nullptr relationals for unique_ptr, to match cppreference.
  • memory: Fixed emplace construct() (move emulation) for allocator_traits, still pending fixes for std::allocator<> support.
  • memory: Fixed hash<> specialization for unique_ptr (C++11).
  • string: Added hash<> specialization for basic_string (C++11).
  • type_index: Added implementation.
  • type_traits: Fixed is_nothrow..., is_trivially... traits in GCC <= 4.6.
  • type_traits: Fixed ...destructible traits in GCC == 4.7.
  • type_traits: Fixed is_final, is_standard_layout for GCC (C++03).
  • utility: Added in_place, in_place_t, etc... (C++17).
  • library: Added strict_type.
  • library: Added string_cast.
check-in: 7bcaa7ae user: luismachuca tags: trunk
Commit 2018-11-11 - Heading on. Preparation for large-scale project changes (1/3).
  • cxxomfort: Fixed add version VERSION.txt which was removed prematurely.
check-in: 746b62a9 user: luismachuca tags: trunk
Commit 2018-11-11 - Heading on. Preparation for large-scale project changes (1/3).
  • cxxomfort: Fixed compilerid flag for MSVC now uses full _MSC_VER number.
  • cxxomfort: Added more comments for automatic documentation.
  • forward_list: Fixed two member initialization order warnings.
  • string: Added missing overloads for integral types short, long.
  • library: All header files renamed to follow the same naming schema as the C++ Standard headers. The old headers are deprecated.
  • library: Added absdistance as an unsigned complement to std::distance.
check-in: ff912e65 user: luismachuca tags: trunk
Commit 2018-11-04 - Fixed repetitions fixed.
  • type_traits: Fixed double definition of is_trivially_ traits.
  • library: Added helper functions arrayref, carrayref.
  • library: Added functions to string: explode, string_replace.
  • TBA: is_constructible.
  • TBA: Moved is_trivially_ , is_noexcept_ traits to a new header.
check-in: 8b94690a user: luismachuca tags: trunk
Commit 2018-10-21 - Doxygening the Way.
  • cxxomfort: Added more documentation blocks for building doxygen docs.
  • cxxomfort: Added documentation macros for supported features (CXXOMFORT_IMPLEMENTS_x)
  • cxxomfort: Fixed `explicit_cast` to not define away in C++11, as that breaks using it in a function call.
  • config: Renamed compiler variables CXXOMFORT_COMPILER_VALUE_x to CXXO_COMPILERID_x
  • config: Renamed cxxomfort variables CXXO_BACKPORT, etc... to CXXO_IMPLSTATUS_x .
  • cstd: Added missing transparent headers for <string>, <memory>, <random>, <numeric>.
  • cstddef: Added `max_align_t` when in C++03 mode (and for MSVC in general).
  • cstddef: Fixed assignments and declarations for std::byte to be closer to C++17, via to_byte.
  • functional: Fixed support for adding bit_and, etc in MSVC 2008.
  • memory: Fixed detection of pointer_traits, allocator_traits in MSVC.
  • memory: Added `destroy_at`, destroy functions from C++17.
  • type_traits: Added enum class backport of std::byte for C++11/14.
  • type_traits: Added C++14 is_final (via intrinsic or false) .
  • type_traits: Improved detection of C++11 is_... traits in MSVC 2010, 2012, some tests still pending.
  • library: Renamed algorithmfn to algorithm.
  • library: Renamed numericfn to numeric.
  • library: Added copy_leftmost_n, copy_rightmost_n to algorithms.
  • library: Added type_traits supplements.
  • library: Added to numeric: `to_signed`, `to_unsigned`.
  • library: Changed implementation of `byte` to perform stricter construction in C++03 and to use native enum class in C++14.
  • library: Added CXXO_GENERATE_RELATIONALS for generating relational operators.

This is a relatively large commit in terms of code changes limited to mostly type_traits related functionality. It also provides better material to construct doxygen documentation.

An important breaking change is that now cxxomfort::cxxostd::byte is no longer constructible from unsigned char; instead, it must always be constructed via to_byte, in line with both C++17 and a number of implementations. check-in: bfec01f8 user: luismachuca tags: trunk

Commit 2018-09-23 - Avoid decay (but not std::decay)
  • config: Fixed detection of MSVC 2008 (wrong version minor).
  • random: Fixed a bug reintroducing the c++03 renames in GCC c++0x mode.
  • type_traits: Fixed an introduced bug in GCC c++0x mode with std::decay already declared.
  • tags: More readability on CXXO_(feature) tags.
check-in: 96a39395 user: luismachuca tags: trunk
Commit 2018-09-22 - Static Library in the Upload
  • random: Added backport for shuffle_order_engine, knuth_b.
  • random: Fixed subtract_with_carry_engine to compile with MSVC.
  • system_error: Added header with minimum capabilities (errc and error_category).
  • type_traits: Moved decay, underlying_type, common_type to their own headers.
  • cstd: Added <system_error> forwarder header.
  • library: Added static math templates to numericfn (static_{min/max/minmax}, etc).
  • library: Added begin, end members to seq_<>, for interoperability.
  • library: Moved non-std functions from cxxomfort::tuple to this set (tuple_pop etc).
  • library: Moved sequence utilities (seq_, etc) to library namespace.
  • library: Moved array_ref from extras.
  • impl/metaprogramming.hpp: Added compose, make_and, make_or.
  • docs: Added lots of comment blocks in the hopes of setting up Doxygen documentation for the future.
check-in: 2f656bdc user: luismachuca tags: trunk
Commit 2018-08-21 - Minmax: Min corrections and Max namespacing
  • config: Introduced namespace 'library' for cxxomfort library extensions.
  • config: Added detection of old-style <functional> binders in preparation for C++20.
  • config: Fixed detection of features in GCC (typeof, enable_if, etc).
  • algorithm: Fixed move minmax, minmax_element to their own header.
  • iterator: Fixed size to be moved to own file and re-implemented as per C++17 std::size.
  • type_traits: Added std::endian support (but unused in this release).
  • type_traits: Added std::bool_constant support.
  • type_traits: Added std::type_identity support.
  • library: Fixed namespacing for CXXO_FOREACH, I12N, variadic to_string, type_name utils, typesafe enum (minor).
  • tags: Updated with library string, algorithm functions.
check-in: d22509b5 user: luismachuca tags: trunk