4.6.0
Freundlich's C++ toolkit
|
Classes | |
class | object |
Typedefs | |
template<typename T , typename = std::enable_if_t<fcppt::array::is_object<T>::value>> | |
using | impl_type = typename T::impl_type |
template<typename T > | |
using | is_object = typename fcppt::array::detail::is_object<T>::type |
Tests whether a type is a array. | |
template<typename Array , typename = std::enable_if_t<fcppt::array::is_object<Array>::value>> | |
using | size = std::integral_constant<std::size_t,std::tuple_size_v<fcppt::array::impl_type<Array>>> |
Gets the size of an array. | |
template<typename Array , typename = std::enable_if_t<fcppt::array::is_object<Array>::value>> | |
using | value_type = fcppt::type_traits::value_type<Array> |
The value type of an array. | |
Functions | |
template<typename Array1 , typename Array2 > requires (std::conjunction_v< fcppt::array::is_object<std::remove_cvref_t<Array1>>, fcppt::array::is_object<std::remove_cvref_t<Array2>>, std::is_same< fcppt::array::value_type<std::remove_cvref_t<Array1>>, fcppt::array::value_type<std::remove_cvref_t<Array2>>>>) | |
fcppt::array::object< fcppt::array::value_type< std::remove_cvref_t< Array1 > >, fcppt::array::size< std::remove_cvref_t< Array1 > >::value+fcppt::array::size< std::remove_cvref_t< Array2 > >::value > | append (Array1 &&_array1, Array2 &&_array2) |
Appends two arrays. | |
template<typename Function , typename Array1 , typename... Arrays> | |
auto | apply (Function const &_function, Array1 &&_array1, Arrays &&..._arrays) -> fcppt::array::object< decltype(_function(fcppt::move_if_rvalue< Array1 >(std::declval< fcppt::container::to_reference_type< std::remove_reference_t< Array1 > > >()), fcppt::move_if_rvalue< Arrays >(std::declval< fcppt::container::to_reference_type< std::remove_reference_t< Arrays > > >())...)), fcppt::array::size< std::remove_cvref_t< Array1 > >::value > requires(std::conjunction_v< fcppt::array::is_object< std::remove_cvref_t< Array1 > >, fcppt::array::is_object< std::remove_cvref_t< Arrays > >..., std::is_same< fcppt::array::size< std::remove_cvref_t< Array1 > >, fcppt::array::size< std::remove_cvref_t< Arrays > > >... >) |
Applies a function to each tuple of elements of multiple arrays and returns an array containing the results. | |
template<typename T , std::size_t Size> | |
bool | operator== (fcppt::array::object< T, Size > const &a, fcppt::array::object< T, Size > const &b) |
Compares two arrays for equality. | |
template<std::size_t Size, typename Source > | |
fcppt::optional::object< fcppt::array::object< fcppt::type_traits::value_type< std::remove_cvref_t< Source > >, Size > > | from_range (Source &&_source) |
Creates an fcppt::array::object out of a range. | |
template<std::size_t I, typename T , std::size_t Size> requires (std::less<>{}(I, Size)) | |
constexpr T & | get (fcppt::array::object< T, Size > &_value) noexcept |
Returns the I'th element of a nonconst array. | |
template<std::size_t I, typename T , std::size_t Size> requires (std::less<>{}(I, Size)) | |
constexpr T const & | get (fcppt::array::object< T, Size > const &_value) noexcept |
Returns the I'th element of a const array. | |
template<typename Array , typename Function > requires fcppt::array::is_object<Array>::value | |
Array | init (Function const &_function) |
Constructs an array by calling a function with static indices. | |
template<typename Array1 , typename... Arrays> requires (std::conjunction_v< fcppt::array::is_object<std::remove_cvref_t<Array1>>, fcppt::array::is_object<std::remove_cvref_t<Arrays>>..., std::is_same< fcppt::array::value_type<std::remove_cvref_t<Array1>>, fcppt::array::value_type<std::remove_cvref_t<Arrays>>>...>) | |
fcppt::array::object< fcppt::array::value_type< std::remove_cvref_t< Array1 > >, fcppt::mpl::list::fold< fcppt::mpl::list::object< std::remove_cvref_t< Arrays >... >, fcppt::mpl::bind< fcppt::mpl::lambda< fcppt::mpl::add >, fcppt::mpl::bind< fcppt::mpl::lambda< fcppt::array::size >, fcppt::mpl::arg< 1 > >, fcppt::mpl::arg< 2 > >, fcppt::array::size< std::remove_cvref_t< Array1 > > >::value > | join (Array1 &&_array1, Arrays &&..._arrays) |
Appends multiple arrays. | |
template<typename Arg1 , typename... Args> requires ( std::conjunction_v<std::is_same<std::remove_cvref_t<Arg1>, std::remove_cvref_t<Args>>...>) | |
fcppt::array::object< std::remove_cvref_t< Arg1 >, sizeof...(Args)+1U > | make (Arg1 &&_arg1, Args &&..._args) |
Make an array out of a parameter pack. | |
template<typename Array , typename Function > | |
auto | map (Array &&_source, Function const &_function) -> fcppt::array::object< decltype(_function(fcppt::move_if_rvalue< Array >(std::declval< fcppt::container::to_reference_type< std::remove_reference_t< Array > > >()))), fcppt::array::size< std::remove_cvref_t< Array > >::value > requires(fcppt::array::is_object< std::remove_cvref_t< Array > >::value) |
Applies a function to every element of an array and returns an array of the results. | |
template<typename Ch , typename Traits , typename Type , std::size_t Size> | |
std::basic_ostream< Ch, Traits > & | operator<< (std::basic_ostream< Ch, Traits > &_stream, fcppt::array::object< Type, Size > const &_array) |
Outputs an array to a stream. | |
template<typename Source , typename NewElement > requires (std::conjunction_v< fcppt::array::is_object<std::remove_cvref_t<Source>>, std::is_same< std::remove_cvref_t<NewElement>, fcppt::array::value_type<std::remove_cvref_t<Source>>>>) | |
fcppt::array::object< fcppt::type_traits::value_type< std::remove_cvref_t< Source > >, fcppt::array::size< std::remove_cvref_t< Source > >::value+1U > | push_back (Source &&_source, NewElement &&_new_element) |
Pushes a new element to the back of an array. | |
using fcppt::array::impl_type = typename T::impl_type |