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

50 most recent check-ins related to "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.
Leaf 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