3.2.2
Freundlich's C++ toolkit
Changes

3.2.2

Bugfixes

3.2.1

Bugfixes

  • Fix Doxygen links.

3.2.0

Added functionality

Changed functionality

3.1.0

Added functionality

Changed functionality

Removed functionality

3.0.0

fcppt now uses C++-17.

Added functionality

Changed functionality

  • fcppt.optional

    • Now uses std::optional in its implementation.

  • fcppt.record

    • All labels of a record must be distinct now.

  • fcppt.variant

    • Now uses std::variant in its implementation. This change makes the constructor of fcppt::variant::object stricter, since it now uses std::is_constructible. For example, an rvalue of a type that is not movable cannot be used to construct a variant.

    • Removed the assignment operator of fcppt::variant::object that assigned an underlying value. Assign a new variant instead.
    • Moved fcppt/variant/less.hpp, fcppt/variant/equal.hpp and fcppt/variant/not_equal.hpp. into fcppt/variant/comparison.hpp.
    • All types of a variant must be distinct now.

2.10.0

Added functionality

Changed functionality

Removed functionality

2.9.0

Added functionality

Changed functionality

Removed functionality

  • fcppt.algorithm

    • Removed fcppt::algorithm::append.

  • fcppt.filesystem

    • Removed fcppt::filesystem::file_to_string.
    • Removed fcppt::filesystem::size_to_size_t.

  • fcppt.string

    • Removed fcppt::output_to_std_string_convert.

  • fcppt.variant

    • Removed fcppt::variant::apply_unary, fcppt::variant::apply_binary and fcppt::variant::apply_ternary.

Bugfixes

2.8.0

General changes

  • Replaced boost.test with Catch2. This means that in order to build the tests (-D ENABLE_TEST=ON), Catch2 is now required.

Added functionality

Changed functionality

Removed functionality

Bugfixes

2.7.0

General changes

  • Boost is now optional, which can be controlled by the ENABLE_BOOST CMake flag. It defaults to ON if Boost is found. To build fcppt_filesystem, fcppt_system or fcppt's tests, Boost is still required. Furthermore, all Boost-specific functionality has been moved to fcppt_boost. To replace boost::mpl, Brigand has been added as a dependency, which can be obtained from here. It is a small, header-only C++11 library that has no dependencies itself.
  • Removed -Weffc++ warning. Unfortunately, this warning has become even more broken in gcc-8.

Added functionality

Changed functionality

Removed functionality

  • fcppt.algorithm

    • Removed fcppt::algorithm::levenshtein and fcppt::algorithm::shortest_levenshtein,

  • fcppt.casts

    • Removed fcppt::cast::promote.

  • fcppt.math

    • Removed fcppt::math::to_array_type_tpl.

  • fcppt.math.dim

    • Removed operator%, operator%= and operator/=.
    • Removed operator+ and operator- that took a scalar.
    • Removed unary operator+.

  • fcppt.math.matrix

    • Removed operator/= and operator/.

  • fcppt.math.vector

    • Removed operator%, operator%= and operator/=.
    • Removed operator+ and operator- that took a scalar.
    • Removed unary operator+.

  • fcpptmpl

    This library is in the process of being replaced by fcppt.brigand.

  • fcppt.record

    • Removed fcppt::record::disjoint_product_tpl,
    • Removed fcppt::record::element_map_tpl,
    • Removed fcppt::record::element_to_label_tpl,
    • Removed fcppt::record::element_to_type_tpl,
    • Removed fcppt::record::element_vector_tpl,
    • Removed fcppt::record::label_set_tpl,
    • Removed fcppt::record::label_value_type_tpl,

  • fcppt.strong_typedef

    • Removed operator/, operator/=, operator% and operator%=.
    • Removed the unary operator+.
    • Removed the shift operators operator<<, operator<<=, operator>> and operator>>=.

  • fcppt.type_traits

    • Removed fcppt::type_traits::is_iterable, fcppt::type_traits::has_iterator and fcppt::type_traits::has_const_iterator.
    • Removed FCPPT_TYPE_TRAITS_GENERATE_HAS_TYPE and FCPPT_TYPE_TRAITS_GENERATE_HAS_MEMBER_FUNCTION.
    • Removed fcppt::type_traits::is_iterator.
    • Removed fcppt::type_traits::function_pointer_to_reference.
    • Removed fcppt::type_traits::is_input_iterator, fcppt::type_traits::is_output_iterator, fcppt::type_traits::is_forward_iterator, fcppt::type_traits::bidirectional_iterator and fcppt::type_traits::is_random_access_iterator.

  • fcppt.variant

    • Removed fcppt::variant::types_of_tpl.

2.6.0

Added functionality

Changed functionality

Removed functionality

Bugfixes

  • fcppt.signal

    • Don't forward arguments into signal because they have to be used multiple times.

  • fcppt.string

    • Fixed initialization of std::mbstate_t when doing character conversions.

  • fcppt.variant

    • Fixed moving of nested variants.

2.5.1

Added functionality

2.5.0

Added functionality

Changed functionality

Bugfixes

2.4.1

Bugfixes

  • CMake

    • Set CMAKE_CXX_STANDARD to 14 in order to fix a bug with imported Qt targets.

2.4.0

Added functionality

Changed functionality

Removed functionality

  • fcppt.casts

    • Removed unused fcppt::cast::apply_fun.

  • fcppt.container.grid

    • Removed fcppt::container::grid::object::{rbegin, rend, cbegin, cend, crbegin, crend}.
    • Removed fcppt::container::grid::object::resize and fcppt::container::grid::object::resize_init.
    • Removed fcppt::container::grid::resize_preserve and fcppt::container::grid::resize_preserve_init.

  • fcppt.math

    • Removed fcppt::math::step.
    • Removed fcppt::math::bresenham and fcppt::math::bresenham_thick.

  • fcppt.ref

    • Removed fcppt::reference<T>::get_pointer.

2.3.0

Added functionality

Changed functionality

  • CMake

    • fcppt_utils_add_test now gets the test directory as argument as well.

  • fcppt.algorithm

    • fcppt::algorithm::vararg_map now uses a fusion sequence instead of an MPL sequence.

2.2.0

Added functionality

Changed functionality

Removed functionality

  • fcppt.casts

    • Removed fcppt::cast::static_downcast_ptr.

2.1.0

General changes

  • VC++ from Visual Studio 2015 Update 2 is now supported.

Added functionality

Changed functionality

Removed functionality

  • fcppt.algorithm

    • Removed fcppt::algorithm::shift_compare.

  • fcpptassign

    • Removed fcppt::assign::make_container_opt.
    • Removed fcppt::assign::make_map.

  • fcppt.casts

    • Removed fcppt::cast::dynamic for pointers.

  • fcppt.io

    • Removed fcppt::io::read_exn.
    • Removed fcppt::io::raw_container_source.

  • fcppt.math

    • Removed fcppt::math::mod_assign.

  • fcppt.string

    • Removed fcppt::extract_from_string_exn.

  • fcppt.various

    • Removed FCPPT_DECLTYPE_SINK.
    • Removed fcppt::tag_value.

2.0.0

General changes

  • C++14 is now required. This probably excludes compilers older than gcc-5.2 and clang-3.4. However, this also leads to several improvements:

    • Polymorphic lambdas are now used to initialize arrays with static indices. This improves the safety of several algorithms, e.g. matrix * vector, matrix * matrix and so on, by checking for out-of-bounds accesses at compile-time.
    • Heterogenous lookup is now supported. For example, you can search a std::set<unique_ptr<int>> given an int *.

  • fcppt::algorithm has been cleaned up substantially:

    • All _exn functions have been removed in favor of fcppt::optional_to_exception.
    • All iterator-based versions have been removed in favor of ranges.
    • All algorithms can now take rvalues to support views.

Bugfixes

  • fcppt.algorithm

    • Fixed return type of fcppt::algorithm::join so it never returns a reference.

Added functionality

Changed functionality

Removed functionality