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

18 descendants and 49 ancestors of [d22509b5]

2019-02-16
04:45
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. Leaf check-in: b1a27cd4 user: luismachuca tags: trunk

2019-02-14
17:51
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
03:17
(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
03:15
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
2019-02-03
23:21
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
2019-02-01
14:04
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
2019-01-28
15:20
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

2019-01-01
02:38
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
2018-12-23
20:01
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
2018-12-20
16:10
Commit 2018-12-18 - Minor fix.
  • library: Fix inclusion of ssize header.
check-in: e00700a4 user: luismachuca tags: trunk
14:11
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
2018-11-26
05:08
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
2018-11-12
20:14
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
20:13
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
2018-11-04
22:55
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
2018-10-26
17:42
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

2018-09-23
05:07
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
01:16
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
2018-08-22
04:58
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
2018-08-17
04:41
Commit 2018-08-17 - Corrections for MSVC 2010/2012 compat.
  • config: Fixed detection of MSVC 2010, 2012 features.
  • random: Fixed C++03 feature renames that are for GCC only.
  • string: Fixed missing strto(u)ll in MSVC 2010,2012 fixed.
  • string: Fixed to_string for MSVC 2012.
  • string: Fixed to_string, strtoull overloads for MSVC 2012.
  • type_traits: Added enable_if, conditional moved to their own file and fixed for C++03 support.
  • library: string: Fixed utf8chr function calls.
  • extras: array_ref: Fixed the fixed_vector constructor.
  • Upcoming Changes:
  • Changes to <functional>: functors.
  • Changes to <type_traits>: minimal TR1.
  • Additions to <cstddef>: user defined literals.
  • Additions to <functional>: not_fn.
  • Additions to cstd: <optional>.
  • Additions to cstd: <variant>.
  • Additions to <library/random>: distributor wrappers.
  • Additions to <library/string>: strsprintf.
check-in: 6fe18ebc user: luismachuca tags: trunk
2018-07-03
03:05
Commit 2018-07-01 - Forward with library improvements, <numeric> and build logs.
  • cxxomfort: Corrected CXXOMFORT_NOTICES in various headers.
  • cxxomfort: Cleared most "typedef unused" warnings.
  • cxxomfort: Most if not all files converted to LF line endings.
  • cxxomfort: CXXOMFORT_DATE now uses full YYYYMMDD format.
  • cxxomfort: CXXOMFORT_NO_STD_USING.
  • cxxomfort: Added numeric.hpp and numerics to library.
  • cxxomfort: Header files also include javadoc code for generating future documentation.
  • library: algorithm: Added inplace_if.
  • library: numeric: Added static_gcd, static_lcm.
  • library: string: Added chr, wchr, utf8chr.
  • library: string: Added split_to.
  • impl: byte is moved to namespace cxxomfort::cstddef.
  • cstdint: Now c++11 emulation mode also relies on pstdint.h.
  • forward_list: Fixed the implementation of insert_after, emplace_after.
  • iterator: Removed warnings about unused typedefs in begin(), end().
  • memory: Updated make_unique as well as its STD requirements to go below C++14.
  • tuple: Removed a warning about aggregate brackets.
  • type_traits: enable_if, conditional moved to their own impl file.
check-in: 5862a10f user: luismachuca tags: trunk
2017-12-24
20:55
Commit 2017-12-24 - Multuple [sic] improvements with a byte of Saturnalia.
  • cxxomfort: Added <algorithm>, <functional>, <iterator>, <utility> cstd forward headers.
  • cxxomfort: Added <cstdint> cstd forward header.
  • cstddef: Added byte from c++17.
  • library: Added the count_frequencies algorithms.
  • library: Fixed the 7-, 8-, and 9-argument c++03 signatures for to_string.
  • library: Library Utilities in <tuple.hpp> moved to the proper <library/tuplefn.hpp> header.
  • library: Added 6-, 7- and 8- tuple arguments overloads to tuple_pop, tuple_shift.
  • library: Added tuple_visit(function, tuple) (aka foreach for tuples).
  • tuple: Fixed tuple_apply(function,tuple) to correspond as a c++17 backport.
  • tuple: Added make_from_tuple from c++17 (it only works on actual tuples in c++03, c++11).
  • PENDING: library: Add tuple_if
check-in: 0c1dc33f user: luismachuca tags: trunk
2017-12-19
03:32
Commit 2017-12-19 - Transparent headers and typesafe enum.
  • cxxomfort: Added cstddef.hpp and its transparent header mirror.
  • cxxomfort: Added random.hpp and its transparent header mirror.
  • cxxomfort: Corrected CXXOMFORT_NOTICES in various headers.
  • config: Improved detection of MSVC 2015 (ver 1900) C++ support.
  • config: Improved detection of C++17 mode.
  • library: Added typesafe_enum.
  • random: Renames of the functors in C++03 according to C++11.
  • PENDING: cstddef: Adding std::byte from C++17.
  • PENDING: functional: Fixes to functors, adding not_fn.
  • PENDING: in_place tag for experimental::optional.
  • PENDING: library: strsprintf.
check-in: d2fcaba9 user: luismachuca tags: trunk
2017-08-11
18:12
Commit 2017-08-11 - Emulation detection fixes (c++0x, c++1y).
  • cxxomfort: Implement a listing of CXXOMFORT_IMPLEMENTS_nxxxx macros.
  • cxxomfort: General fixes to ensure GCC 4.6 compatibility.
  • cxxomfort: Improvements to detection of "c++1y" support (__cplusplus == 2013 or similar).
  • algorithm: Correction to transform_inplace (wrong typename).
  • algorithm: Fixed detection of all_of algorithms in C++0x emulation mode.
  • functional: move functional's fixes for MSVC C++03 to its own header.
  • memory: Fixed detection of required backports in MSVC 2010 (which provides __alignof but doesn't announce it).
  • string: Fixed detection of required backports in MSVC 2010 (which provides a borked to_string).
  • string: Added r_trim, l_trim, trim generics for basic_strings.
  • type_traits: Fixed detection of common_type support.
  • utility: Fixed detection of declval support.
  • extras: Added observer_ptr proposal (n3840).
  • extras: Reimplemented extras::optional, more in line with std::experimental proposal status.
  • tags: Added tags for some free functions made available.
check-in: ef968a6c user: luismachuca tags: trunk
2017-07-30
16:55
Commit 2017-07-30 - Future version preparation; Library additions.
  • cxxomfort: Preparation for CXXOMFORT_VERSION to be deprecated in favor of CXXOMFORT_DATE.
  • cxxomfort: Added cxxomfort::output_info(Stream&).
  • library: fixed_vector is now def-ctible, swappable and assignable.
  • library: Added algorithmfn.hpp (algorithm helpers).
  • library: Added fundamental.hpp (object wrapper for ints and other fundamental types).
  • library: Added iteratorfn.hpp (iterator helpers).
  • algorithm: moved to its own namespace.
  • algorithm: Renamed the header to "algorithm.hpp" (the old header is still available).
  • algorithm: Added transform_n.
  • algorithm: Added transform_inplace.
  • algorithm: Added find_last_if.
  • functional: moved to its own namespace.
  • iterator: moved to its own namespace.
  • functional: transparent functors now inherit from std:: ones, enabling their use inside std::bind.
  • memory: moved aligned_storage backporting to its own header.
check-in: dc81f185 user: luismachuca tags: trunk
2017-04-23
04:44
Commit 2017-04-22 - Future version preparation, Proposal additions
  • Version: 0.51
  • Code and file reorganzation in preparation for major release.
  • cxxomfort: Filesystem reorganized now with cxxomfort/ source tree.
  • cxxomfort: Opened a new "library" component.
  • config: Changing structure, as well as meaning of some directives, in preparation for 1.00 release.
  • config: Added impl/pseudovariadic.hpp to be used in the future.
  • base: Some files in base/ are now marked as #pragma system_header in GCC.
  • algorithm: Moved to its own namespace.
  • algorithm: Moved [all_any_none]_of to their own impl file.
  • algorithm: Added c++17's `clamp`. http://open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0025r0.html
  • algorithm: Added c++17's `for_each_n`.
  • iterator: Disabled GCC warnings about unused typedefs.
  • string: Added vaiadic to_string / to_wstring proposal - http://open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0117r0.html .
  • tuple: Added tuple_pop, tuple_shift for c++11 onward.
  • type_traits: Added c++17's `make_void`.
  • type_traits: fixing templates and helpers for MSVC 2008 (in util/).
  • utility: Added c++17's 'as_const' - http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4380.html .
  • library: Moved in i12n, foreach emulation, localfn, pair03 and type_name.
  • library: Added fixed_vector.
  • extras/foreach.hpp: Moved to library; left-over header will emit warning.
  • extras/forward_list: Moved to library; left-over header will emit warning.
  • extras/localfn: Moved to library; left-over header will emit warning.
check-in: 93870e64 user: luismachuca tags: trunk
2016-04-18
00:34
Commit 2016-04-14 - Organizational fixes and 'common_type' goodies.
  • Version: 0.49.3
  • config: Fixed some feature detection macros and CXX03/11 distinction macros.
  • config: Removed the deprecated CXXOMFORT_CXX11_MODE macro.
  • config: Fixed usage of renamed feature detection macros in utility.
  • algorithm: is_xxx_of algorithms moved to their own implementation header.
  • algorithm: partition algorithms moved to their own implementation header.
  • cstdint: Updated portable stdint.h (pstdint.h) to 0.1.15.4.
  • utility: integer_sequence, index_sequence moved to their own implementation header.
  • memory: alignof, addressof moved to their own implementation headers.
  • string: Fixes to implementation to make needed functions static and remove MSVC warnings.
  • type_traits: Fixes to common_type:
  • now resolves from the left as per cppreference.
  • c++03: tries to resolve via is_convertible when typeof is not available.
  • utility: Fixed usage of wrong detection macros (see CXXOMFORT_CXX11_MODE).
  • extras/auto: Added a new CXXO_TYPEOF feature to use where CXXO_DECLTYPE would expect an expression instead of a type.
  • extras/localfn: Fixed usage of wrong feature detection macros.
check-in: def09e11 user: luismachuca tags: trunk
2015-09-09
15:01
Commit 2015-09-09 - Proposal additions and MSVC.related fixes
  • Version: 0.49.1
  • Added: type_traits: make_void (C++17) to C++11, C++14.
  • Added: config: updated configurations for clang 3.x.
  • Added: config: added macro for C++14's relaxed constexpr.
  • Added: tags: .tags file for Geany.
  • Fixed: [37bde24a83] duplicate name linker error due to typeid_demangle.
  • Fixed: [910254d3c2] i12n and const/volatile containers.
  • Fixed: forward_list: details in implementation make it more conformant to C++11.
  • Fixed: type_traits: common_type performs decay, works with clang++.
  • Fixed: type_traits: missing make_signed / make_unsigned in clang in C++03 mode.
  • Fixed: type_traits: recognizing missing is_trivially... traits in clang in C++11 mode.
  • Fixed: impl: typeid_demangle now works with clang++.
  • Fixed: various.hpp if_[any,all,none] traits using variadics in C++03 mode.
  • In-Progress: Preparations to move type_traits, tr1 shortcut headers to their own subproject.
check-in: 2654b55b user: luismachuca tags: trunk
2015-08-03
04:22
Commit 2015-08-02 - Proposal additions and MSVC.related fixes
  • Version: 0.49
  • Added: config: detection for variadic macros, `__typeof__`, common_type.
  • Added: n3928: static_assert without message.
  • Added: i12n: support for CXXO_I12N_SEQ (initialization via variadic macro).
  • Fixed: i12n: does not allow for creating const/voltile qualified objects.
  • Fixed: iterator: improved support for valarray<>.
  • Fixed: config/msc: removed some dangling macro redefinition warnings from MSVC.
  • Fixed: config/msc: MSVC 2010 wrongly reported by cxxomfort to support = default, = delete.
  • Fixed: impl/type_name: type_name.hpp's `detail_demangle::job` is made static.
  • Fixed: extras/dynarray: removed dangling `swap()`.
check-in: 19c89a45 user: luismachuca tags: trunk
2015-06-30
14:58
Commit 2015-06-30 - Transparent headers and namespace std.
  • Version: 0.48
  • Added: CXXO_COMPILER_SUPPORT_x set of macros.
  • Added: C++14's "mismatch" to algorithms that was missing.
  • Fixed: array_ref, dynarray, optional all moved to std::experimental, cstd/experimental.
  • Fixed: tuple.hpp's apply works with MSVC 2008.
  • Fixed: make_array warnings with MSVC 2008.
check-in: 067320ae user: luismachuca tags: trunk
2015-01-05
18:46
Commit 2015-01-05 - Project reorganization part kvin, beta 2.
  • Version: 0.46
  • Fixed: missing gcc, clang configuration files.
  • Fixed: missing move.hpp .
  • Fixed: missing memory.hpp .
  • Fixed: missing extras.hpp .
  • Working on fixing std, emulation identification code.
check-in: e57e681b user: luismachuca tags: trunk
16:51
(no comment) check-in: c3c1bd71 user: luismachuca tags: trunk
16:46
(no comment) check-in: e21b4077 user: luismachuca tags: trunk
16:11
(no comment) check-in: d6608835 user: luismachuca tags: trunk
16:06
Commit 2015-01-05 - Project reorganization part kvin, beta 1.
  • Version: 0.46
  • Fixed: missing gcc, clang configuration files.
  • Fixed: missing move.hpp .
  • Fixed: missing memory.hpp .
  • Fixed: missing extras.hpp .
check-in: 1af853d1 user: luismachuca tags: trunk
16:05
(no comment) check-in: f120530d user: luismachuca tags: trunk
16:04
Commit 2015-01-05 - Project reorganization part kvin, beta 1.
  • Version: 0.46
  • Fixed: missing gcc, clang configuration files.
  • Fixed: missing move.hpp .
  • Fixed: missing memory.hpp .
check-in: e5c0826f user: luismachuca tags: trunk
16:02
Commit 2015-01-05 - Project reorganization part kvin, beta 1.
  • Version: 0.46
  • Fixed: missing gcc, clang configuration files.
  • Fixed: missing move.hpp .
check-in: 43b0aee6 user: luismachuca tags: trunk
15:54
Commit 2015-01-05 - Project reorganization part kvin, beta 1.
  • Version: 0.46
  • Fixed: missing gcc, clang configuration files.
  • Fixed: missing move.hpp .
check-in: b1357585 user: luismachuca tags: trunk
15:45
Commit 2015-01-05 - Project reorganization part kvin, beta 1.
  • Version: 0.46
  • Fixed: missing gcc, clang configuration files.
check-in: 9f271949 user: luismachuca tags: trunk
2014-12-30
20:50
Commit 2014-12-29 - Project reorganization part kvin, beta 1.
  • Version: 0.46
  • Added: CXXOMFORT_CXX14_MODE for detection of C++14 mode (__cplusplus==201402L).
  • Added: tuple.hpp: tuple2arry, array2tuple.
  • Fixed: dynarray<T> has reverse iterator members now.
  • Fixed c++0x detection in string.hpp, memory.hpp .
  • Fixed: tuple.hpp: implementation of apply(fn,tuple), which did the wrong thing.
  • Fixed: sequences.hpp: implementation of is_iterator .
  • Reduced dependencies on namespace std::tr1.
check-in: f92ab155 user: luismachuca tags: trunk
2014-12-24
02:34
Commit 2014-12-22 - Project reorganization part quattro.
  • Added: `typesafe_enum` to Extras.
  • Added: `index_sequence` to utility.hpp in C++11 mode.
  • Added: regex-esc.hpp to utilities and CXXO_R to escape regexes in C++ code.
  • Reorganized type_traits.hpp.
  • Added: tuple.hpp with `get<type>` and `apply`.
  • Added: string.hpp with partial `to_string`.
  • Added: CXXOMFORT_CXX_EMULATION_CXX to detect "emulation mode"
check-in: d8862997 user: luismachuca tags: trunk
2014-11-22
20:21
Commit 2014-11-21 - Project reorganization part three.
  • Continued: Setting up reorganization of headers, features.
  • Fixed usages of CXXOMFORT_NOTICE to work with GCC <= 4.6.
  • Added: sequences.hpp .
  • Added: partial implementation of N4017 (nonmember size, back, front) in iterator.hpp .
  • Added: N3824 (make_array) in sequences.hpp .
  • Added: extras/array_ref.hpp .
  • Added: impl/type_name.hpp .
  • Moved: is_iterator, is_sequence to sequences.hpp .
  • Fixed: dynarray, array_ref moved into namespaces.

Wiki-side: enumeration of proposals implemented and fixing organization on Features and Features/Extras. check-in: 7572bcb9 user: luismachuca tags: trunk

2014-10-28
21:09
Commit 2014-10-28 - Project reorganization part deux.
  • Continued: Setting up reorganization of headers, features.
  • Moved: utilities.hpp to various.hpp.
  • Moved: implementation files for foreach.
  • Fixed: cstd/optional uses namespace std::experimental.
  • Fixed: cstd/dynarray uses namespace std::experimental.
  • Added: functional.hpp.
  • Added: limits.hpp.
  • Added: impl/ namespace.
  • i12n is promoted from Extras to Standard (included automatically).
  • 14-functors is promoted from Extras to Standard (included automatically).
  • Updated wiki documentation to reflect base feature reorganization.
check-in: 6eb06440 user: luismachuca tags: trunk
2014-10-24
00:27
Commit 2014-10-23 - Project reorganization
  • Setting up reorganization of headers, features.
  • Setting up Base Features (see below)).
  • Moved some basic features to base/ folder: nullptr, static_assert, iterators, explicit_cast, cstdint.
  • Added CXXOMFORT_CXX_STD macro with value eg.: 1998, 2011, 2014.
  • Reimplemented internal add_reference, add_cv, remove_cv to be simpler.
  • Partial implementation of n3928: static_assert without message.
  • Moved: nullptr.hpp -> base/nullptr.hpp
  • Moved: sassert.hpp -> base/static_assert.hpp
  • Moved: iterator.hpp -> base/iterator.hpp
  • Moved: cstdint.hpp -> base/cstdint.hpp
check-in: dda2e55a user: luismachuca tags: trunk
2013-12-12
13:10
Commit 2013.12.12 - MSVC fixes.
  • Fixed CXXO_NOTICE for the MSVC compiler.
  • Added basic compatibility with MSVC 2010 (Express).
  • Removed is_constructible for MSVC, as it is still untested.
  • Explicitly added declval to MSVC 2010.
  • Removing some potential warnings about usage of macros (empty arguments or too few arguments) in MSVC.
  • Pending: removing warnings for static_assert in MSVC 2008.
check-in: 90d4e4fd user: luismachuca tags: trunk
2013-12-09
03:19
Commit 2013.12.08 - Immaculate Comfort Redux
  • Fundamental changes to library implementation, including differentiation of "true" C++11 mode v/s "emulation" mode.
  • Added CXXOMFORT_CXX11_EMULATION status macro and redefined scope of CXXOMFORT_CXX11_MODE.
  • Moved compiler configuration and feature detection support to independent, per-compiler headers.
  • Tested library implementation with Clang 3.0 in both c++03 and c++0x mode.
  • Added CXXO_EMULATION_featurename family of macros in the same vein as Clang.
  • Reimplemented Notices capability to use _Pragma(message...).
  • Moved internal traits implementation to util/type_traits.
  • Added type_traits.hpp with support for some C++11 traits in C++03, depending on compiler support.
  • Added fallback of "is_movable" traits for C++03 (always returns false except for scalars, is safe).
  • Added support for C++14's is_null_pointer trait.
  • Added support for C++14's integer_sequence and index_sequence, and relatives.
  • Added new traits and template utilities for support of function types, std::functions and std::tuples.
  • Added metaprogramming utilities is_any_of and conditional_if.
  • Added type_name complement function to typeid_demangle.
  • Pending: Fixing the feature check for all Extras features.
  • Other minor changes.
check-in: 48465c61 user: luismachuca tags: trunk
2013-11-30
02:22
Commit 2013.11.29 - Documenting
  • Reformatted code comments to be Doxygen-compatible.
  • Added std::optional again.
  • Added C++11 type traits to utilities.hpp, waiting to be moved.
check-in: 37afb66a user: luismachuca tags: trunk
2013-11-26
19:00
Backported names of new C++11 traits in GCC emulation mode check-in: d8b97055 user: luismachuca tags: trunk
06:49
Commit 2013.11.24 - Emulation preparations
  • Made some changes in detection of GCC <= 4.6 to prepare for improvements in emulation-mode detection
  • Added new foreach implementation for GCC (and possibly other compilers supporting __typeof__)
  • Added new equal variants from C++14.
  • Added common_type to C++03.
  • Added new name variants for is_trivially_X to C++03.
check-in: bb3ca53b user: luismachuca tags: trunk
2013-11-20
15:32
Commit 2013.11.20 - Explicit assistance
  • Added explicit_cast feature that maps perfectly to static_cast in C++11.
  • Added initial stage of local functor support as extras/localfn.hpp.
  • Changed the name of CXXO_I12N_BEGIN for symmetry.
  • Corrected the version tags that were not updated in the last upstream release.
  • Shortened preprocessor-based library notices.
  • Implemented library notices for Clang (requires Clang ≥ 3.1 to actually show the diagnostics).
  • Added new proposed algorithms count_while.
  • Minor documentation changes in preparation for release of Doxygen-compiled documentation.
check-in: d1f68706 user: luismachuca tags: trunk
2013-11-08
19:57
Commit 2013.11.09 - Options and Optionals.
  • Added support for optional<> plus a transparent header (<optional>).
  • Added and, or to Meta utilities.
  • Added a header utility.hpp with implementations related to <utility>.
  • Moved the cxxomfort::pair implementation to utility header.
  • Moved the declval declaration to utility header.
  • Added a __typeof__-using foreach emulation to GCC to avoid use of virtual.
check-in: 7be86be6 user: luismachuca tags: trunk
2013-10-21
23:37
Commit 2013.10.20 - Standards and Extras.
  • Added support for foreach emulation in extras (extras/foreach.hpp).
  • Added support for dynarray in extras (extras/dynarray.hpp).
  • Added support for forward_list in extras (extras/forward_list.hpp).
  • Added some utilities (is_tuple, is_pair, is_sequence).
  • Added is_pod to the compiler-provided type traits.
  • Added internal declval<T>() support.
  • Added transparent header <cstddef> for using basic nullptr and static_assert emulation.
  • Added transparent headers <dynarray> and <forward_list> for the above features.
check-in: 42346b8f user: luismachuca tags: trunk
2013-10-09
02:31
Commit 2013.10.08 - Fixing macro derp

Corrected a typo in a #macro directive in memtraits.hpp that makes the library unusable.

. check-in: c8a1184a user: luismachuca tags: trunk

01:30
Commit 2013.10.08 - Separation of Concerns.
  • Added a using.hpp header that separately imports namespace tr1 now. Should make using the library less likely to trigger ambiguity errors in system headers (eg.: GCC 4.6's stl_list.h).
  • Pushed down some header invocations that might require tr1 utilities, such as the hash<unique_ptr> specializations.
  • Type Traits now has to implement is_enum, is_union, is_class in order to work with broken MSVC 9 (2008), as it doesn't allow installing TR1 when using eg.: VC Express.
  • aligned_storage<S,A> is now implemented at least for GCC ≥ 4.2 and MSVC 9 (2008) and tested in both compilers.
  • alignas in compilers not supporting alignment customization now fails with an understandable error.
  • Slightly changed the static_assert emulation so that compilers choose a "unused value" warning instead of a "unsafe use of operator" warning which is more annoying.
  • cstdint implementation will always issue warning when having to forward a call to pstdint.

Other minor issues might be pending. check-in: d769b354 user: luismachuca tags: trunk

2013-10-03
23:07
Commit 2013.10.03 - More warning-aware.
  • nullptr, static_assert, iterator helpers and static_assert tested with MSVC 2008.
  • Changed compiler identification code slightly to redirect cstdint requests in GCC < 4.6.
  • MSC compatibility: utility warnings are disabled for the code generated by type_traits and static_assert.
check-in: 73664c9b user: luismachuca tags: trunk
16:30
Commit 2013.10.03 - auto/decltype emulation.

Adds CXXO_DECLTYPE(expr) in supported compilers (GCC >= 4.0, MSVC >= 7.0, Clang == 3.0) that evaluates to normal decltype in C++11.

check-in: bc9c1726 user: luismachuca tags: trunk
2013-10-02
21:52
Commit .25 - adding allocator traits
  • Added util/memtraits.hpp with pointer_traits and allocator_traits emulation.
  • Added macros for support of variadic function signatures, still in development.
  • Changed some pending warnings to #pragma message directives.
check-in: f79dc724 user: luismachuca tags: trunk
2013-09-28
13:57
Commit .24 - reorganizing files.
  • Utility components are moved into util/ directory.
  • Fixed wrong compiler detection setup for iterator.hpp.
  • Added Portable stdint.h to components setup, called by cstdint.hpp as last resort.
  • Added refactored Boost's move emulation features to utilities.
  • Added is_empty<> approximation to type_traits.
  • Added cbegin, cend for C-arrays in iterator.hpp.
  • addressof and unique_ptr are loaded separately from memtools, to assist in dependency linking.
  • alignas() is implemented in c++03 for GCC compiler.
check-in: e831ee40 user: luismachuca tags: trunk
2013-09-23
01:26
  • Added memtools.hpp with memory management tools and alignof, alignas macros.
  • Added portable stdint.h for usage with cstdint.hpp .
  • Addedd value-init.hpp with value initialization technique and macro from Boost.
  • Added utilities.hpp with various utilities not mapped to C++11 names.
  • Modified unique_ptr.hpp, iterator.hpp to use the internal traits from type_traits.hpp .
  • Added global cbegin(), cend() from C++14 to iterator.hpp .
  • Removed is_enum, is_union from the internal traits impl.
  • Updated version to 0.22.
check-in: 3282f41d user: luismachuca tags: trunk
2013-09-03
17:21
Corrective edit to iterator.hpp - cbegin() and cend() were not using'd to namespace std. check-in: eb0d56d8 user: luismachuca tags: trunk
16:34
Updated library version to .20 with internal type_traits utility and minor changes to other components to use this implementation where possible.

Other additions include:

* iterator.hpp : Added C++14's proposed std::cbegin, std::cend . * unique_ptr.hpp : Reference detection is done by internal type_traits. * algorithms.hpp : the partition_copy algorithm is added. * extras/14-functors.hpp : Added <void> specializations to namespace std:: by default. check-in: 7e316f56 user: luismachuca tags: trunk

2013-08-27
02:49
  • Update to version 0.16
  • Added extras (i12n, auto and 14-functors)
  • Added algorithms header.
check-in: 01bb6e22 user: luismachuca tags: trunk
2013-08-05
07:08
Fossil repo update from local testing branch.
  • Added README.
  • Added capabilities (cstdint, meta, addressof, unique_ptr).
  • Tweaked C++11 mode recognition.
check-in: e7738dad user: luismachuca tags: trunk
2012-05-26
02:39
Version 0.12

This version is already "usable" and works well with eg.: Boost.Tr1 or another C++ TR1 wrapper.

Added are a version file, iterator accessors and configuration macros (some documentation is still pending). check-in: 83adbb73 user: luismachuca tags: trunk

02:35
Testing commit check-in: ad4c629e user: luismachuca tags: trunk
2012-04-05
03:42
Initial version of cxxomfort, with license and minimal features.

This does not much else than carry the "it works on my machine" seal. check-in: 53edfccf user: luismachuca tags: trunk

2012-04-04
17:22
initial empty check-in check-in: 5d00066e user: luismachuca tags: trunk