5.0.0
Freundlich's C++ toolkit
Loading...
Searching...
No Matches
Older Changes

3.8.0

Added functionality

Changed functionality

Removed functionality

Bugfixes

  • Fixed a gcc-11 issue regarding parameter expansion.

3.7.0

Added functionality

Removed functionality

  • fcpptcontainerarray

    This has been removed in favor of fcppt.array.

  • fcpptcontainertuple

    This has been removed in favor of fcppt.tuple.

  • fcppt.various

    • Removed fcppt::homogenous_pair.

  • fcppt.type_traits

    • Removed fcppt::type_traits::is_std_array.
    • Removed fcppt::type_traits::is_std_tuple.

3.6.0

Added functionality

Changed functionality

Bugfixes

  • Fix clang-11 issues with destructor names.

3.5.0

Added functionality

Changed functionality

Removed functionality

  • fcppt.casts

    • Removed fcppt::cast::safe.

  • fcpptcontainertuple

    • Removed fcppt::container::tuple::type_at. Use std::tuple_element.

  • fcppt.type_traits

    • Removed fcppt::type_traits::constructible_from. Use std::is_constructible.

3.4.0

  • Replaced Brigand with Metal.

Added functionality

Changed functionality

3.3.0

  • fcppt now uses std::filesystem.

Added functionality

Removed functionality

  • fcppt.filesystem

    • Removed fcppt::filesystem::create_directory_error.

  • Removed the fcpptsystem library.

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

  • fcppt.boost

    • Removed spirit traits.

  • fcppt.catch

    • Removed fcppt::catch_::defer.

  • fcpptcontainertuple

    • Removed fcppt::container::tuple::to_varargs. Use std::apply.

  • fcppt.preprocessor

    • Removed FCPPT_PP_WARN_UNUSED_RESULT.

3.0.0

fcppt now uses C++-17.

Added functionality

  • fcpptbrigand

    • Added fcppt::brigand::is_set.
    • Added fcppt::brigand::unique.

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

  • fcppt.algorithm

    • Moved fcppt::algorithm::array_map, fcppt::algorithm::array_init, fcppt::algorithm::array_init_const, fcppt::algorithm::array_init_move, fcppt::algorithm::array_push_back and fcppt::container::make_array to fcpptcontainerarray.
    • Renamed fcppt::algorithm::vararg_map to fcppt::container::tuple::vararg_map.

  • fcpptassign

  • fcppt.container

    • Renamed fcppt::container::untuple to fcppt::container::tuple::to_varargs.

  • fcpptcontainerarray

    • fcppt::container::array::map no longer uses an explicit result type.

  • fcppt.math.dim

  • fcppt.math.vector

  • fcppt.options

    • The active and inactive values in fcppt::options::flag must be different now.
    • All long and short names must be distinct now.
    • All parsers and their parameters are now passed as rvalue references. Use fcppt::make_cref or fcppt::copy to pass them.

  • fcppt.string

    • Renamed fcppt::insert_to*_string to fcppt::output_to*_string.

Removed functionality

  • Removed fcppt.mpl.

  • fcppt.algorithm

    • Removed fcppt::algorithm::array_binary_map. This has been replaced by fcppt::container::array::apply.

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 fcpptbrigand>.

  • 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

  • fcpptmpl

    • Added fcppt::mpl::sequence_to_string.

  • fcppt.variant

    • Added fcppt::variant::types_of and fcppt::variant::types_of_tpl.
    • Added move semantics to fcppt::variant::apply_unary, fcppt::variant::apply_binary and fcppt::variant::apply_ternary.
    • Improved the error message of fcppt::variant::invalid_get.
    • Added fcppt::variant::types_string.
    • Added fcppt::variant::current_type_name.

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

  • CMake

    • Removed BOOST_THREAD_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0 which has not been used for a long time.

  • fcppt.algorithm

    • Removed fcppt::algorithm::array_fold and fcppt::algorithm::enum_array_fold which were only useful in C++11.

  • fcppt.container

    • Removed fcppt::container::find_exn in favor of fcppt::optional_to_exception.

  • fcppt.container.grid

  • fcppt.enum

    • Removed at() and empty() from fcppt::container::enum_array.

  • fcppt.math

    • Removed default constructors.
    • Removed container-like functionality, including iterator-based constructors, begin/end, front/ back, etc, and so on.
    • Removed swap implementations because they gained nothing over std::swap.

  • fcppt.math.vector

    • Removed fcppt::math::vector::project and fcppt::math::vector::orthogonalize.

  • fcppt.signal

  • fcppt.smart_pointers

  • fcppt.strong_typedef

    • Removed implicit assignment from the underlying type.
    • Removed strong typedef references.

  • fcppt.time

    • Removed fcppt::time::parse_time and fcppt::time::parse_date.

  • fcppt.variant

    • Removed fcppt::variant::object::get_exn. Use the free function fcppt::variant::get_exn instead.

Changes from 1.4.0 to 1.5.0

Added functionality

Changed functionality

  • fcppt.algorithm

  • fcppt.log

    • Use fcppt::function for fcppt::log::format::function.
    • Introduced fcppt::log::format::optional_function to make it clear where a function can be missing.
    • Changed fcppt::log::parameters to only consist of a single class.

  • fcppt.signal

    • Use fcppt::function instead of std::function.
    • Use a strong typedef for the initial value of a signal.

Bugfixes

Changes from 1.3.0 to 1.4.0

General changes

  • At least CMake-3.0 is now required.
  • Fixed upcoming clang-3.7 warnings when std::move can be omitted from return statements.

Added functionality

Changed functionality

Bugfixes

  • Use standard iterator categories instead of boost iterator categories. The latter do not derive from the former and generally break algorithms that test for them.
  • Fix std::swap includes to conform to C++11.

Changes from 1.2.0 to 1.3.0

General changes

  • Ignore -Wdeprecated-declarations in external headers.

Added functionality

Changed functionality

  • fcppt.optional
    • Removed pointer semantics from optional. See Design for a detailed explanation.

    • Also removed reset and assignment of non-lifted values to optionals.

    • Optionals that have been moved from are now always empty.
  • fcppt.variant

    • get has been renamed to get_exn.

  • CMake export names are now used properly. The prepare_config function is no longer needed and has been removed.

Changes from 1.1.0 to 1.2.0

General changes

  • Ignore VC++ warnings about implicitly deleted move ctors and assignment operators in external headers. This goes towards supporting VC++ again, but the 2015 preview still has issues with noexcept.

Added functionality

  • Added fcppt::algorithm::find_by_opt and fcppt::algorithm::find_by_exn.

  • Added fcppt::optional_to_exception.

  • Added element_type typedef to fcppt::optional.

Changed functionality

  • Changed fcppt::algorithm::array_fold_static and fcppt::algorithm::enum_array_fold_static to take function objects that are callable with one parameter instead of zero parameters. This also goes towards supporting VC++ again.

  • Require cast functions from fcppt.casts in fcppt::strong_typedef_construct_cast and fcppt::mpl::integral_cast.

Removed functionality

  • Removed fcppt::io::color which had a very questionable implementation.

  • Removed fcppt::algorithm::copy_n. Use std::copy_n instead.

  • Removed fcppt::math::is_rational which was unused.

  • Removed fcppt::number_multiplexer which was undocumented.

  • Removed fcppt::time::sleep. Use std::this_thread::sleep_for instead.

Bugfixes

  • Fixed cmake-3.1.1 warnings about quoting in if statements.

  • Fixed structure_cast functions in math to actually use their conversion functions instead of static_cast.

  • Int ranges where end < begin are now empty.

Changes from 1.0.0 to 1.1.0

General changes

  • enable_ifs that checked for type constraints were replaced by static_asserts.

Added functionality

Changed functionality

  • Changed fcppt::algorithm::find_exn and fcppt::algorithm::find_if_exn to take the exception as a parameter.

  • Changed structure_cast functions of fcppt::math to require a cast function as template parameter.

  • Forward headers were added to vector/static.hpp, dim/static.hpp, matrix/static.hpp, sphere/circle.hpp and box/rect.hpp.

Removed functionality

  • Removed array_hash which was a duplicate of fcppt::range_hash.

  • Removed fcppt::math::vector::slerp.

  • Removed fcppt::algorithm::exception and fcppt::algorithm::element_not_found.

Bugfixes

Changes from 0.12.0 to 1.0.0

General changes

  • fcppt now uses C++11 which implies that non-conforming compilers are no longer supported.

New Libraries

  • fcppt.casts

    • Added fcppt.casts which includes casts to replace static_cast.

  • fcppt.enum

    • Added fcppt::enum_max_value, fcppt::enum_size and fcppt::cast_to_enum.

    • Added fcppt::container::enum_array.

    • Added fcppt::enum_range.

    • Added fcppt::runtime_enum.

    • Added fcppt::algorithm::enum_array_fold and fcppt::algorithm::enum_array_fold_static.

  • fcppt.literal

  • fcppt.ref

    • Added fcppt::reference_wrapper which supports incomplete types.

Added functionality

Changed functionality

Removed functionality

  • Features made obsolete by C++11

    • Removed SAFE_BOOL which can be replaced by explicit conversion operators.

    • Removed fcppt::assign::make_array which can be replaced by initializer lists.

    • Removed fcppt::signal::connection_manager which can be replaced by fcppt::signal::connection_container.

    • Removed fcppt::scoped_ptr<T> which can be replaced by std::unique_ptr<T> const.

    • Removed fcppt::make_auto_ptr.

    • Removed fcppt.alignment which is replaced by alignas and alignof.

    • Removed fcppt::container::array. Use std::array instead.

    • Removed fcppt::type_info which is replaced by std::type_index.

    • Removed workarounds.hpp which applied to pre-C++-11 compilers only.

    • Removed fcppt::container::ptr functions and fcppt::algorithm::ptr_container_ease and fcppt::algorithm::ptr_container_erase_if. Ptr containers should be replaced by containers of unique ptrs.

  • Others

    • Removed fcppt::variant::recursive. Recursive variants are inefficient.

    • Removed fcppt.chrono.asio. Asio now supports std::chrono durations and time points.

    • Removed dynamic math classes that we didn't have a usecase for.

    • Removed fcppt::algorithm::copy_if. fcppt::algorithm::map_optional can be used instead.

    • Removed fcppt::container::map which was incomplete and never documented.

    • Removed fcppt::log::global which was unused.

    • Removed FOREACH_ENUMERATOR. Use fcppt::make_enum_range instead.

    • Removed FCPPT_TRY_DYNAMIC_CAST. Use fcppt::cast::try_dynamic instead.

    • Removed fcppt::math::quaterion which was unused.

Bugfixes

  • CMake

    • Fix cmake paths so that fcppt can be used via add_subdirectory.

    • Fixed linking to Boost found by testing on Fedora.

    • Fixed FcpptCMakeUtils to not set anything globally.

  • fcppt.math

    • Fixed comparison of different math objects (e.g. a vector and a vector view).

  • fcppt.optional

    • Fixed a bug in fcppt::optional::operator=.

  • fcppt.variant

    • Fixed fcppt::variant::object::operator= when construction throws.

Changes from 0.11.1 to 0.12.0

General changes

  • Expose cmake targets from the build directory and when installing. This should make it a lot easier to use fcppt from other cmake based projects. See Using fcppt

  • Some updates for VC++11, mostly warning fixes.

  • Some updates for gcc-4.8 trunk, also mostly warning fixes.

Added functionality

Removed functionality

  • Removed include_windows.hpp from public includes

  • Removed fcppt.thread. The purpose of fcppt.thread was to provide sleeping with a steady clock and to call terminate on joinable threads upon destruction. Both issues have been fixed in Boost.Thread as of boost-1.52.0

Bugfixes

  • Fixed a bug in fcppt::unique_ptr::reset

  • Fixed assigning of math views (like matrix's row view)

  • Reduced smart pointer include dependencies

  • Don't use -pthread if not necessary

  • Prefer newer boost versions over older ones. We also don't set Boost_ADDITIONAL_VERSIONS anymore.

Changes from 0.11 to 0.11.1

This release is mainly a bugfix release.

  • Some documentation fixes.

  • fcppt::algorithm::levenshtein and fcppt::algorithm::shortest_levenshtein now support boost.range and not only containers.

  • Added FCPPT_PP_CONST, FCPPT_PP_PURE and FCPPT_PP_WARN_UNUSED_RESULT.

  • Added missing template keywords for clang-3.1

  • Added fcppt::math::interpolation::perlin_fifth_degree function (along with the corresponding functor) which implements Ken Perlin's noise interpolation function.

  • Added fcppt::container::bitfield::object::get and fcppt::container::bitfield::object::static_size for easy integration into other APIs.

  • Ignore -Wextra-semi in Boost headers for clang-3.2 trunk

  • Fixed type problems in bitfield. The size type is now the same as the enum type. The difference type is its signed counterpart.

  • Enabled more warnings in clang if available, namely -Wundef, -Wimplicit-fallthrough, -Wunneeded-member-function, -Wunused-member-function, -Wconditional-uninitialized, -Wunreachable-code.

  • Updates for doxygen-1.8.1

  • Updates for boost-1.50

  • Made fcppt -Wunused-local-typedefs-proof.

Changes from 0.10 to 0.11

General changes

  • Introduced new headers fcppt/config/external_begin.hpp and fcppt/config/external_end.hpp that are used around external includes and disable a lot of warnings. This way it was possible for us to enable many more warnings for fcppt, especially in VC++.

  • Removed convenience headers that included everything in a subsystem. They are not considered good style anyway.

  • Removed trailing whitespaces in the code.

  • Don't use constants with internal linkage anymore.

  • Parts of fcppt that require additional libraries to link to are now split into their own libraries, namely fcppt_filesystem and fcppt_thread.

Added functionality

New Libraries

  • Added a new assert framework

  • Added fcppt::null_ptr which can be used for null pointers to objects.

Additions to existing libraries

  • fcppt.algorithm

    • Added fcppt::algorithm::key_set

    • Added fcppt::algorithm::set_union

    • Added fcppt::algorithm::copy_if

  • fcppt.container

  • fcppt.export

    • Added support for explicit instantiations of template functions and classes.

  • fcppt.math

    • Added fcppt::math::vector::mod

    • Added componentwise_equal functions to replace the removed implicit epsilon comparison.

  • fcppt.io

    • Added fcppt::io::read_exn

  • fcppt.log

  • fcpptmpl

    • Added fcppt::mpl::contains_if.

    • Added fcppt::mpl::integral_cast.

  • fcppt.optional

    • Support optional references.

    • Added fcppt::dynamic_optional_cast, fcppt::static_optional_cast and fcppt::const_optional_cast to cast between optional references.

  • fcppt.strong_typedef

  • fcppt.type_traits

    • Added fcppt::type_traits::is_random_access_iterator, fcppt::type_traits::is_bidirectional_iterator, fcppt::type_traits::is_forward_iterator, fcppt::type_traits::is_input_iterator and fcppt::type_traits::is_output_iterator.

  • fcppt.variant

    • Added a free fcppt::variant::get function.

    • Added nonconst variant visitation using fcppt::ref

  • fcppt.various

    • Added FCPPT_FOREACH_ENUMERATOR_START_END

Changed functionality

Removed functionality

Removed libraries

  • Removed fcppt::utf8. It is not really implementable without OS support.

  • Removed fcppt::chrono, expect the asio glue code. boost.chrono should be used.

Removed functionality from libraries

  • Removed fcppt::auto_ptr typedef

  • Removed FCPPT_ASSERT and FCPPT_ASSERT_MESSAGE, which were replaced by the new assert framework

  • Removed FCPPT_STUB_FUNCTION

  • Removed fcppt::minmax_pair

  • fcppt.endianness

    • Removed fcppt::endianness::copy_n_from_host, fcppt::endianness::copy_n_to_host, fcppt::endianness::copy_n_swapped and fcppt::endianness::copy_swapped, fcppt::endianness::from_big_endian, fcppt::endianness::from_host, fcppt::endianness::from_little_endian, fcppt::endianness::to_big_endian, fcppt::endianness::to_host and fcppt::endianness::to_little_endian.

  • fcppt.filesystem

    • Removed fcppt::filesystem::first_file, fcppt::filesystem::next_file and fcppt::filesystem::skip_directories.

    • Removed fcppt::filesystem::create_directories_recursive, fcppt::filesystem::create_directory, fcppt::filesystem::current_path, fcppt::filesystem::directory_iterator, fcppt::filesystem::exists, fcppt::filesystem::file_size, fcppt::filesystem::is_directory, fcppt::filesystem::is_regular, fcppt::filesystem::path, fcppt::filesystem::readlink, fcppt::filesystem::recursive_directory_iterator, fcppt::filesystem::remove and fcppt::filesystem::remove_filename

    • Removed fcppt::io::cifstream, fcppt::io::cofstream and fcppt::io::cfstream

  • fcppt.math

    • Removed fcppt::math::almost_zero, fcppt;:math::compare, fcppt::math::machine_epsilon, fcppt::math::vector::is_null, fcppt::math::null and all other epsilon comparing functions. A general epsilon cannot be provided and the user must choose one. As a result of this, all comparison functions use ==. It is made sure that they still emit warnings when using -Wfloat-equal.

    • Removed fcppt::math::vector::to_angle, fcppt::math::vector::transform, fcppt::math::vector::unit_circle and fcppt::math::vector::place.

    • Removed fcppt::math::dim::quad and fcppt::math::dim::transform.

    • Removed FCPPT_MATH_INSTANTIATE_ARITHMETIC, fcppt::math::is_negative, fcppt::math::round_div_int, fcppt::math::quad, fcppt::math::inverse and fcppt::math::signum.

    • Removed fcppt::math::matrix::look_at

    • Removed broken overloads of fcppt::math::next_pow_2

  • fcppt.smart_pointers

  • fcppt.string

  • fcppt.strong_typedef

  • fcppt.variant

    • Removed fcppt::variant::apply, use fcppt::variant::apply_unary, fcppt::variant::apply_binary or fcppt::variant::apply_ternary instead.

Bugfixes

  • Fixed fcppt::mpl::index_of to only allow types that are part of the sequence. This also fixes invalid uses of fcppt::variant::object::get

  • Fixed fcppt::variant::holds_type when recursive types are involved.

  • Don't overwrite Boost_ADDITIONAL_VERSIONS in cmake, just append to it.

  • Fixed fcppt::algorithm::ptr_container_erase

  • Fixed the iterator category of fcppt::cyclic_iterator

  • Fixed static linking of fcppt

  • Fixed fcppt::math::box::contains_point

  • Made logging a lot less expensive

  • fcppt::variant::apply_unary now has linear complexity instead of quadratic complexity if the variant has been declared using an boost::mpl::list

Changes from 0.9 to 0.10

Added functionality

  • Added math::matrix::is_matrix trait.
  • Added io::stream_to_string that reads the whole content of a stream into a string.
  • Added filesystem::create_directory_exn and filesystem::create_directories_recursive_exn.
  • Added backtrace which can print a stack trace for gcc compiled binaries.
  • Install a new FcpptConfig.cmake file so cmake can find an installed fcppt without FindFcppt.cmake.
  • Added fusion adaptors for container::array.
  • Added utf8::from_std_string.
  • Implemented FCPPT_PP_FUNCTION for VC++.
  • Added support for boost::array to assign::array.
  • Added container::ptr::push_front_unique_ptr.
  • -fvibisibility=hidden is now optional, but still on by default (use FCPPT_ENABLE_VISIBILITY_HIDDEN).
  • Added mpl::append.

Changed functionality

  • Changed the default cmake module installation path to ${CMAKE_ROOT}/Modules if ${CMAKE_INSTALL_PREFIX} is a prefix of ${CMAKE_ROOT}.
  • Replaced utf8::convert by utf8::from_fcppt_string and utf8::to_fcppt_string.
  • random now uses boost::random instead of tr1::random.
  • A 64 bit type is now required for chrono.

Removed functionality

  • Removed boost filesystem v2 support. Boost 1.44 or later is now needed.
  • Removed math::matrix::perspective, math::matrix::orthogonal and math::matrix::orthogonal_xy. Every projection function is only meaningful if you know which canonical view volume you are using.

Bugfixes

  • Fixed FCPPT_DYN_LINK behaviour in FindFcppt.cmake.
  • Properly pass QUIETLY and REQUIRED in FindFcppt.cmake.
  • Include Boost_INCLUDE_DIRS rather than Boost_INCLUDE_DIR.
  • Use -pthread for POSIX systems because we use boost.thread and asio.
  • Assert that a type requested via variant::object::get or
    ::get_raw 
    is actually among its possible types.
  • type_traits::is_iterable, TYPE_TRAITS_GENERATE_HAS_MEMBER_FUNCTION and TYPE_TRAITS_GENERATE_HAS_TYPE now properly expose an mpl::bool.
  • The default case of chrono::common_type has been restricted to fundamental types to avoid compiler errors with certain overloaded operators.