3.6.0
|
|
Freundlich's C++ toolkit |
metal::number
. std::tuple
. =std::locale()
parameters. metal::number
. =std::locale()
parameter from fcppt::extract_from_string, fcppt::from_std_string, fcppt::from_std_wstring fcppt::narrow, fcppt::output_to_string, fcppt::output_to_std_string, fcppt::output_to_std_wstring, fcppt::to_std_string, fcppt::to_std_wstring and fcppt::widen. type
from fcppt::type_traits::function_result. fcppt::cast::safe
. fcppt::container::tuple::type_at
. Use std::tuple_element
. fcppt::type_traits::constructible_from
. Use std::is_constructible
. fcppt::brigand::implication
to fcppt::type_traits::implication. fcppt::brigand::integral_cast
to fcppt::type_traits::integral_cast. Moved fcppt::brigand::ceil_div
to fcppt::math::ceil_div_static.
fcppt::record::variadic
and added fcppt::record::from_list. fcppt::variant::variadic
and added fcppt::variant::from_list. std::filesystem
. fcppt::filesystem::create_directory_error
. Removed the fcpptsystem library.
Fix fcppt::unique_ptr assignment.
operator<<
. operator<<
for fcppt::enum_::array. fcppt::container::tree::output
to operator<<
. fcppt::options::combine_errors
to detail. Output operators now recurse into Catch's output code instead of using operator<<
.
fcppt::either::fold_error
to fcppt::either::sequence_error. fcppt::catch_::defer
. fcppt::container::tuple::to_varargs
. Use std::apply
. FCPPT_PP_WARN_UNUSED_RESULT
. fcppt now uses C++-17
.
fcpptbrigand
fcppt::brigand::is_set
. fcppt::brigand::unique
. std::optional
in its implementation. 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.
fcppt/variant/less.hpp
, fcppt/variant/equal.hpp
and fcppt/variant/not_equal.hpp
. into fcppt/variant/comparison.hpp
. constexpr
. external_begin.h(pp)
and external_end.h(pp)
includes can now overlap. fcppt::log::_
to fcppt::log::out. FCPPT_NONASSIGNABLE
. fcppt::container::tuple::type_at
. fcppt::options::combine_errors
and use it in fcppt::options::sum. std::array
, you have to include fcppt/algorithm/map_array.hpp
. fcppt::algorithm::join
to fcppt::container::join. fcppt::algorithm::key_set
to fcppt::container::key_set. fcppt::algorithm::set_difference
to fcppt::container::set_difference. fcppt::algorithm::set_intersection
to fcppt::container::set_intersection. fcppt::algorithm::set_union
to fcppt::container::set_union. std::string
, fcppt::algorithm::append
. fcppt::filesystem::file_to_string
. fcppt::filesystem::size_to_size_t
. fcppt::output_to_std_string_convert
. fcppt::variant::apply_unary
, fcppt::variant::apply_binary
and fcppt::variant::apply_ternary
. Updated catch includes to use catch2/catch.hpp
.
std::set
instead of std::unordered_set
so that set_union
actually works. boost.test
with Catch2
. This means that in order to build the tests (-D ENABLE_TEST=ON
), Catch2 is now required. operator==
to fcppt::iterator::range. fcppt::output_to_std_string_convert
. 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 fcppt.container.array. fcppt::algorithm::vararg_map
to fcppt::container::tuple::vararg_map. fcpptassign
fcppt::assign::make_container
to fcppt::container::make. fcppt::container::untuple
to fcppt::container::tuple::to_varargs
. fcppt::math::dim::construct
to fcppt::math::dim::push_back. fcppt::math::vector::construct
to fcppt::math::vector::push_back. fcppt::insert_to*_string
to fcppt::output_to*_string
. Removed fcppt.mpl
.
fcppt::algorithm::array_binary_map
. This has been replaced by fcppt::container::array::apply. 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. -Weffc++
warning. Unfortunately, this warning has become even more broken in gcc-8
. std::array
in fcppt::algorithm::map. fcppt::algorithm::array_map
. fcpptbrigand
New library for brigand utility functions.
New library that is a simple replacement for boost::intrusive::list
. It only supports movable types. Furthermore, an element must be initialized with the list it is going to be a member of.
New library that provides a base class to implement iterators from and an iterator range.
New library that implements some utility functions for ranges.
boost::format
from fcppt::log::format::inserter. operator/
now return optionals. operator/
now return optionals. fcppt::range_hash
to fcppt::range::hash. make_strong_typedef.hpp
from strong_typedef.hpp
. fcppt::algorithm::levenshtein
and fcppt::algorithm::shortest_levenshtein
, fcppt::cast::promote
. fcppt::math::to_array_type_tpl
. operator%
, operator%=
and operator/=
. operator+
and operator-
that took a scalar. operator+
. operator/=
and operator/
. operator%
, operator%=
and operator/=
. operator+
and operator-
that took a scalar. operator+
. fcpptmpl
This library is in the process of being replaced by fcpptbrigand>
.
fcppt::record::disjoint_product_tpl
, fcppt::record::element_map_tpl
, fcppt::record::element_to_label_tpl
, fcppt::record::element_to_type_tpl
, fcppt::record::element_vector_tpl
, fcppt::record::label_set_tpl
, fcppt::record::label_value_type_tpl
, operator/
, operator/=
, operator%
and operator%=
. operator+
. operator<<
, operator<<=
, operator>>
and operator>>=
. fcppt::type_traits::is_iterable
, fcppt::type_traits::has_iterator
and fcppt::type_traits::has_const_iterator
. FCPPT_TYPE_TRAITS_GENERATE_HAS_TYPE
and FCPPT_TYPE_TRAITS_GENERATE_HAS_MEMBER_FUNCTION
. fcppt::type_traits::is_iterator
. fcppt::type_traits::function_pointer_to_reference
. 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::types_of_tpl
. fcppt::algorithm::append
now also works on rvalues. fcppt::algorithm::join
to join maps and sets. This sub-library adds fcppt::container::buffer::object and utility functions which can be used to provide a buffer to external functions that write into raw memory. The buffer contains a read and a write area.
fcppt::either::fold_error
and fcppt::either::error_from_optional. fcppt::filesystem::create_directory_error
and fcppt::filesystem::create_directories_recursive. fcppt::filesystem::size_to_size_t
. 4 x 4
. fcppt/options/pretty_type_enum.hpp
that outputs all possible enumerators via fcppt::enum_::names. fcppt::add_reference
. std::hash
specialization. fcpptsystem
New library that wraps some functionality from boost.system
.
main
function to support unicode arguments in Windows. operator==
, operator!=
and operator<<
for fcppt::unit. CMake
find_package(fcppt)
now adds fcppt's module path to CMAKE_MODULE_PATH
. GNUInstallDirs.cmake
instead of its own variables. fcppt::container::raw_vector
to fcppt::container::raw_vector::object. fcppt/container/raw_vector/comparison.hpp
. std::vector
. operator[]
of fcppt::container::grid::object to fcppt::container::grid::object::get_unsafe. Moved most functionality that is related to contiguous enums to the fcppt::enum_ namespace.
fcppt::filesystem::file_to_string
now returns fcppt::optional_string for most errors. std::basic_ifstream
, std::basic_ofstream
and std::basic_fstream
instead of the boost variants. fcppt::math::at_c
into fcppt::math::vector::at, fcppt::math::dim::at and fcppt::math::matrix::at_r. operator[]
of fcppt::math::dim::object to fcppt::math::dim::object::get_unsafe. operator[]
of fcppt::math::matrix::object to fcppt::math::matrix::object::get_unsafe. fcppt::math::matrix::at_c
to fcppt::math::matrix::at_r_c. fcppt::math::matrix::delete_row_and_column_static
to fcppt::math::matrix::delete_row_and_column. std::array
. operator[]
of fcppt::math::vector::object to fcppt::math::vector::object::get_unsafe. fcppt::options::custom_pretty_type
to fcppt::options::pretty_type_impl. fcppt/shared_ptr_output.hpp
. char
. fcppt::container::is_std_vector
. fcppt::container::is_raw_vector
. std::vector
. fcppt::filesystem::exception
. fcppt::filesystem::create_directories_recursive_exn
and fcppt::filesystem::create_directory_exn
. fcppt::filesystem::is_executable
which is covered by boost.filesystem
. fcppt::math::matrix::delete_row_and_column
. std::mbstate_t
when doing character conversions. fcpptmpl
fcppt::mpl::sequence_to_string
. fcppt::variant::types_of_tpl
. fcppt::variant::apply_unary
, fcppt::variant::apply_binary
and fcppt::variant::apply_ternary
. operator<<
and operator>>
for fcppt::log::level. fcppt::math::to_array_type_tpl
, fcppt::math::from_array and fcppt::math::to_array. fcpptmpl
fcppt::mpl::set_intersection
. fcppt::mpl::set_union
. fcppt::mpl::set_difference
. fcppt::mpl::set_symmetric_difference
. New library for parsing command-line options, similar to Haskell's optparse-applicative.
fcppt::record::label_set_tpl
. fcppt::record::disjoint_product_tpl
. fcppt::record::label_value_type_tpl
. fcppt::record::element_map_tpl
. ==
and !=
comparison for equivalent records. fcppt::record::element_vector_tpl
. fcppt::type_traits::constructible_from
. fcppt::math::static_storage
, fcppt::math::matrix::static_storage
, fcppt::math::map
and fcppt::math::binary_map
to detail. std::string
. CMake
CMAKE_CXX_STANDARD
to 14
in order to fix a bug with imported Qt targets. fcppt::math::generate_binary_vectors
to fcppt::math::vector::bit_strings. fcppt::cast::apply_fun
. fcppt::container::grid::object::{rbegin, rend, cbegin, cend, crbegin, crend}
. fcppt::container::grid::object::resize
and fcppt::container::grid::object::resize_init
. fcppt::container::grid::resize_preserve
and fcppt::container::grid::resize_preserve_init
. fcppt::math::step
. fcppt::math::bresenham
and fcppt::math::bresenham_thick
. fcppt::reference<T>::get_pointer
. CMake
FOLDER
properties on targets. fcppt_utils_set_target_folder
. fcppt_utils_add_example
. 4309
(overflow of a constant) in external headers. fcppt::container::untuple
. fcpptmpl
fcppt::mpl::index_of_iterator
. New library that implements generic records, whose elements are accessed by unique label types.
fcppt/variant/comparison.hpp
. CMake
fcppt_utils_add_test
now gets the test directory as argument as well. fcppt::algorithm::vararg_map
now uses a fusion sequence instead of an MPL sequence. CMake
Added interface libraries to fcppt's exported targets. For example, fcppt_core_interface
can be used to inherit the include paths and compile definitions from fcppt_core
without linking to the library.
INCLUDE_DIRS
and LINK_LIBS
to fcppt_utils_add_dummy_target
. fcppt_utils_is_path_prefix_of
. FCPPT_CONFIG_GNU_GCC_COMPILER
to distinguish gcc from clang. -Wundefined-var-template
for clang-3.9
in external headers. -Wsuggest-override
in external headers. -Wnull-dereference
for gcc-6
in external headers. fcpptmpl
fcppt::mpl::partial_sums
can now be specified. CMake
fcppt_utils_generate_config
. _fwd
headers to fcppt::io::istream, fcppt::io::ostream, fcppt::io::istringstream, fcppt::io::ostringstream and fcppt::io::stringstream. fcppt::io::ifstream
, fcppt::io::ofstream
and fcppt::io::fstream
to fcppt::filesystem::ifstream, fcppt::filesystem::ofstream and fcppt::filesystem::fstream. The logging library went through a major rewrite, with the purpose to remove global objects.
fcppt::container::bitfield::object_from_enum
to fcppt::container::bitfield::enum_object and introduced an _fwd
header. fcppt::cast::static_downcast_ptr
. std::tuple
as a range. -Wfloat-conversion
and -Wsign-conversion
for gcc-6
in external headers again. -Wexpansion-to-defined
for clang-3.9
in external headers. fcppt::container::make_array
. New library that represents sum types of failure and success.
fcppt::cast_to_enum_exn
. fcpptmpl
fcppt::mpl::flatten
. fcppt::mpl::numeric_max
. fcppt::cast::try_dynamic
to fcppt::cast::dynamic, and renamed fcppt::cast::dynamic
to fcppt::cast::dynamic_exn. fcppt::cast_to_enum
now returns an optional. optional_bind_construct
to fcppt::optional::map. fcppt::reference_wrapper
to fcppt::reference. FCPPT_NONASSIGNABLE
now simply use =delete
instead of private:
fcppt::algorithm::shift_compare
. fcpptassign
fcppt::assign::make_container_opt
. fcppt::assign::make_map
. fcppt::cast::dynamic
for pointers. fcppt::io::read_exn
. fcppt::io::raw_container_source
. fcppt::math::mod_assign
. fcppt::extract_from_string_exn
. FCPPT_DECLTYPE_SINK
. fcppt::tag_value
. 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:
matrix * vector
, matrix * matrix
and so on, by checking for out-of-bounds accesses at compile-time. std::set<unique_ptr<int>>
given an int *
. fcppt::algorithm has been cleaned up substantially:
_exn
functions have been removed in favor of fcppt::optional_to_exception
. fcppt::algorithm::join
so it never returns a reference. CMake
NO_CODE
flag to fcppt_utils_add_test
which can be used to generate test cases that only consist of static asserts. value_type
instead of mapped_type
. -Wsign-compare
in external headers. fcppt::mpl::enum_range
and fcppt::mpl::enum_range_start_end
.fcppt::math::matrix::at_c
. fcppt::math::matrix::delete_row_and_column_static
. fcppt/math/sphere/output.hpp
. fcpptmpl
fcppt::mpl::copy
. fcppt::mpl::for_each_break
. fcppt::mpl::integral_cast_tpl
. fcppt::optional_join
. fcppt::variant::variadic
. FCPPT_DECLTYPE_SINK
which returns decltype
of an expression and also uses it. This is useful in polymorphic lambdas where the argument is only used for its type. fcppt::tag_value
to extract a default-constructed value of a tag, which is useful for integral constants. fcppt::algorithm::array_fold_static
to fcppt::algorithm::array_init
, fcppt::algorithm::enum_array_fold_static
to fcppt::algorithm::enum_array_init
and fcppt::algorithm::array_init
to fcppt::algorithm::array_init_const
. operator bool
, swap
and clear
. fcppt/container/bitfield/comparison.hpp
. fcppt/container/bitfield/operators.hpp
. fcppt::enum_is_empty
. All enum ranges are now non-empty. std::integral_constant
. This greatly simplifies matching of template arguments. (pos,max)
representation instead of (pos,dim)
. This greatly simplifies a lot of algorithms on boxes. It also changes the interface slightly. fcppt::math::box::init
. null
of fcppt::math::box::object to fcppt::math::box::null. null
of fcppt::math::dim::object to fcppt::math::dim::null. identity
of fcppt::math::matrix::object to fcppt::math::matrix::identity. fcppt/math/sphere/comparison.hpp
. null
of fcppt::math::vector::object to fcppt::math::vector::null. fcppt::make_unique_ptr_fcppt
to fcppt::make_unique_ptr. CMake
BOOST_THREAD_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0
which has not been used for a long time. fcppt::algorithm::array_fold
and fcppt::algorithm::enum_array_fold
which were only useful in C++11
. fcppt::container::find_exn
in favor of fcppt::optional_to_exception
. fcppt::container::grid::object::at
in favor of fcppt::container::grid::at_optional. fcppt::container::grid::is_square
which is covered by fcppt::math::dim::is_quadratic. fcppt::container::grid::iterator_position
which was unused and probably broken. at()
and empty()
from fcppt::container::enum_array
. begin
/end
, front
/ back
, etc, and so on. std::swap
. fcppt::math::vector::project
and fcppt::math::vector::orthogonalize
. fcppt::signal::scoped_connection
which was a typedef to fcppt::signal::auto_connection const
. fcppt::make_unique_ptr
which used to create a std::unique_ptr
. fcppt::time::parse_time
and fcppt::time::parse_date
. fcppt::variant::object::get_exn
. Use the free function fcppt::variant::get_exn instead.