5.1.0
Freundlich's C++ toolkit
Loading...
Searching...
No Matches
fcppt Namespace Reference

The top level namespace. More...

Namespaces

namespace  algorithm
 General-purpose algorithms.
namespace  array
namespace  bit
 Bit operations.
namespace  cast
 Cast helpers which provide more type information or do additional checks.
namespace  concepts
namespace  container
 Various containers and utility functions.
namespace  either
 Contains fcppt::either::object and helper types/functions for it.
namespace  monad
 Monad typeclass and related functions.
namespace  endianness
 Functions to convert and query endianness.
namespace  enum_
namespace  error
namespace  indent
 Contains indent functions.
namespace  intrusive
namespace  io
 IO-related typedefs and functions.
namespace  iterator
namespace  math
 Everything math-related goes in here.
namespace  mpl
namespace  optional
namespace  random
 Main namespace for random, also containing the variate generator.
namespace  range
namespace  record
namespace  signal
 An implementation of a managed signals and slots system (replacement for boost's signals).
namespace  time
 Time query and formatting utilities.
namespace  tuple
namespace  type_iso
 Conversions between isomorphic types.
namespace  type_traits
 Some additional type traits.
namespace  variant
 Contains fcppt::variant::object and helper types/functions for it.
namespace  catch_
namespace  filesystem
 Helper functions for std::filesystem.
namespace  log
 Logging classes and functions.
namespace  options
 Library for command-line options.
namespace  parse
 Library for parsers.
namespace  assert_
 Helper functions for assertions.

Classes

struct  c_deleter
 A deleter that uses std::free to destroy an object. More...
struct  com_deleter
 A deleter that uses the Release member function to destroy an object. More...
class  cyclic_iterator
 An iterator adaptor that cycles through a range. More...
struct  default_deleter
 A deleter that uses delete to destroy an object. More...
struct  deref_impl
struct  deref_impl< Arg, std::enable_if_t< fcppt::is_recursive< std::remove_const_t< Arg > >::value > >
struct  deref_impl< Arg, std::enable_if_t< fcppt::is_reference< std::remove_const_t< Arg > >::value > >
struct  deref_impl< Arg, std::enable_if_t< fcppt::is_unique_ptr< std::remove_const_t< Arg > >::value > >
class  enable_shared_from_this
 Allows an object to obtain a shared ptr to itself. More...
class  exception
 The base class for all exceptions. More...
class  function< Ret(Args...)>
 A function object that cannot be null. More...
class  function
struct  identity
 The identity function. More...
class  int_iterator
 An iterator over integers. More...
class  int_range
 A forward range over integers. More...
struct  is_recursive
 Tests if a type is an fcppt::recursive. More...
struct  is_recursive< fcppt::recursive< Type > >
struct  is_reference
 Tests if a type is an fcppt::reference. More...
struct  is_reference< fcppt::reference< Type > >
struct  is_strong_typedef
 Tests if a type is an fcppt::strong_typedef. More...
struct  is_strong_typedef< fcppt::strong_typedef< Type, Tag > >
struct  is_unique_ptr
 Tests if a type is an fcppt::unique_ptr. More...
struct  is_unique_ptr< fcppt::unique_ptr< Type, Deleter > >
struct  make_literal< Type, std::enable_if_t< std::is_arithmetic_v< Type > > >
struct  make_literal
struct  make_literal< fcppt::strong_typedef< Type, Tag > >
struct  no_init
 A dummy struct to use a constructor that does not initialize. More...
struct  output_impl
struct  output_impl< std::pair< T1, T2 >, void >
struct  output_impl< Arg, void >
struct  output_impl< std::string, void >
struct  overloaded
 Overloads multiple lambdas. More...
class  recursive
 Turns an incomplete type into a complete one, allowing recursion. More...
class  reference
 A simple reference wrapper that supports incomplete types. More...
struct  reference_hash< fcppt::reference< Type > >
 A hash for fcppt::reference that hashes pointers. More...
struct  reference_hash
class  shared_ptr
 A shared pointer class that gets the deleter as a template parameter. More...
struct  shared_ptr_hash< fcppt::shared_ptr< Type > >
 A hash for fcppt::shared_ptr that hashes pointers. More...
struct  shared_ptr_hash
class  strong_typedef
 Used to create strong typedefs. More...
struct  strong_typedef_hash< fcppt::strong_typedef< Type, Alias > >
 Hash function object for strong typedefs. More...
struct  strong_typedef_hash
struct  tag
 A value for a type name. More...
class  unique_ptr
 A simpler unique_ptr that shouldn't be used as a null pointer. More...
struct  unit
 The unit data type. More...
class  weak_ptr
 A weak reference to an object owned by a shared pointer. More...
struct  boost_units_value
 Converts a boost unit to its value. More...
struct  make_literal< boost::units::quantity< Unit, Type > >
 Literal specialization for boost.units.
class  scoped_state_machine
 Scopes a boost state machine. More...

Typedefs

using args_char = fcppt::detail::args_char
 The char type of the main function.
using args_vector = std::vector<fcppt::string>
 A vector of command line arguments.
using char_type = fcppt::detail::char_type
 The char_type used for text.
template<typename Arg>
using deref_type = decltype(fcppt::deref(std::declval<Arg &>()))
 The type of fcppt::deref.
using major_version
 fcppt's major version
using micro_version
 fcppt's micro version
using minor_version
 fcppt's minor version
template<typename Type, typename Arg>
using move_if_rvalue_type = decltype(fcppt::move_if_rvalue<Type>(std::declval<Arg>()))
 Type of fcppt::move_if_rvalue.
using optional_error_code = fcppt::optional::object<std::error_code>
 An optional error code.
using optional_std_string = fcppt::optional::object<std::string>
 An optional std string.
using optional_string = fcppt::optional::object<fcppt::string>
 An optional string.
using string = std::basic_string<fcppt::char_type>
 The string type used for text.
using string_view = std::basic_string_view<fcppt::char_type>
 The string view type used for text.
template<typename StrongTypedef>
using strong_typedef_tag = typename fcppt::detail::strong_typedef_tag<StrongTypedef>::type
 The tag type of a strong typedef.
template<typename Type>
using tag_type = typename fcppt::detail::tag_type<std::remove_cvref_t<Type>>::type
 Extracts the type of fcppt::tag.
using version_int
 The int type to use for a version component.
template<fcppt::version_int Value>
using version_integral_c = std::integral_constant<fcppt::version_int, Value>
 An integral constant for a version component.
using format = boost::basic_format<fcppt::char_type>
 A fcppt::char_type typedef for boost.format.

Enumerations

enum class  loop : std::uint8_t { loop::break_ , loop::continue_ }
 Denotes a loop control statement. More...

Functions

template<typename T>
absurd ()
 The polymorphic terminate function.
FCPPT_DETAIL_SYMBOL fcppt::args_vector args (int argc, fcppt::args_char const *const *argv)
 Copy main arguments into a container.
FCPPT_DETAIL_SYMBOL fcppt::args_vector args_from_second (int argc, fcppt::args_char const *const *argv)
 Copy main arguments into a container, starting from the second.
template<typename If, typename Then>
std::invoke_result_t< If > cond (bool const _conditional, If const &_if, Then const &_then)
 Functional if-then-else.
template<typename Type>
fcppt::detail::const_< Type > const_ (Type _value)
 Function returning a constant.
template<typename Dest, typename Source>
fcppt::shared_ptr< Dest > const_pointer_cast (fcppt::shared_ptr< Source const > const &_ptr)
 Casts an fcppt::shared_ptr using const_cast.
template<typename Type>
Type copy (Type const &_value)
 Copies a value.
template<typename Arg>
decltype(auto) deref (Arg &_arg)
 Dereferences an object.
template<typename Dest, typename Source>
fcppt::optional::object< fcppt::shared_ptr< Dest > > dynamic_pointer_cast (fcppt::shared_ptr< Source > const &_ptr)
 Casts an fcppt::shared_ptr using dynamic_cast.
FCPPT_DETAIL_SYMBOL fcppt::string error_code_to_string (std::error_code const &)
 Converts an error code to an fcppt::string.
template<typename Dest, fcppt::concepts::string Source>
fcppt::optional::object< Dest > extract_from_string (Source &&_source)
 Convert a string to a different type using fcppt::insert_extract_locale.
template<typename Dest, fcppt::concepts::string Source>
fcppt::optional::object< Dest > extract_from_string_fmt (Source &&_source, std::ios_base::fmtflags const _flags)
 Convert a string to a different type using fcppt::insert_extract_locale and format flags.
template<typename Dest, fcppt::concepts::string Source>
fcppt::optional::object< Dest > extract_from_string_locale_fmt (Source &&_source, std::locale const &_locale, fcppt::optional::object< std::ios_base::fmtflags > const _flags)
 Convert a string to a different type using a locale.
FCPPT_DETAIL_SYMBOL fcppt::string from_std_string (std::string_view)
 Convert from std::string to fcppt::string using fcppt::string_conv_locale.
FCPPT_DETAIL_SYMBOL fcppt::string from_std_string_locale (std::string_view, std::locale const &)
 Convert from std::string to fcppt::string using a custom locale.
FCPPT_DETAIL_SYMBOL fcppt::optional_string from_std_wstring (std::wstring_view)
 Convert from std::wstring to fcppt::string using fcppt::string_conv_locale.
FCPPT_DETAIL_SYMBOL fcppt::optional_string from_std_wstring_locale (std::wstring_view, std::locale const &)
 Convert from std::wstring to fcppt::string using a custom locale.
FCPPT_DETAIL_SYMBOL fcppt::optional_std_string getenv (std::string_view)
 Gets an optional value from the environment.
template<typename Type>
std::size_t hash (Type const &_value)
 Calls std::hash.
std::size_t hash_combine (std::size_t const _hash_old, std::size_t const _hash_new)
 Combines two hashes.
FCPPT_DETAIL_SYMBOL std::locale insert_extract_locale ()
 Returns the default locale to use when converting from or to strings.
template<typename Type, typename Arg>
constexpr fcppt::make_literal< Type >::decorated_type literal (Arg const &&_integral) noexcept
 Creates a literal of a type.
template<typename Type>
fcppt::reference< Type const > make_cref (Type const &_ref) noexcept
 Convenience function to create const references.
template<typename Ret, typename... Args>
fcppt::function< Ret(Args...)> make_function (Ret(&_function)(Args...))
 Creates an fcppt::function.
template<typename Int>
fcppt::int_range< Int > make_int_range (Int const _begin, Int const _end)
 Creates a forward integer range.
template<typename Int>
fcppt::int_range< Int > make_int_range_count (Int const _count)
 Creates a forward integer range starting at zero.
FCPPT_DETAIL_SYMBOL fcppt::optional_error_code make_optional_error_code (std::error_code const &error)
 Creates an optional error code.
template<typename Type>
fcppt::recursive< std::remove_cvref_t< Type > > make_recursive (Type &&_value)
 Creates an fcppt::recursive.
template<typename Type>
fcppt::reference< Type > make_ref (Type &_ref) noexcept
 Convenience function to create references.
template<typename Res, typename... Args>
fcppt::shared_ptr< Res > make_shared_ptr (Args &&..._args)
 Like std::make_shared but for fcppt::shared_ptr.
template<typename Tag, typename Type>
fcppt::strong_typedef< std::remove_cvref_t< Type >, Tag > make_strong_typedef (Type &&_value)
 Creates a new strong typedef given a tag and a value.
template<typename Res, typename... Args>
fcppt::unique_ptr< Res > make_unique_ptr (Args &&..._args)
 Like std::make_unique for fcppt::unique_ptr.
template<typename Type>
Type move_clear (Type &_value)
 Moves out of a value and clears it.
template<bool Cond, typename Arg>
decltype(auto) move_if (Arg &&_arg)
 Moves an object if a condition is true.
template<typename Type, typename Arg>
decltype(auto) move_if_rvalue (Arg &&_arg)
 Moves an object if a type is an rvalue.
template<typename Type, typename Iterator>
decltype(fcppt::detail::move_iterator_if_rvalue< Type >(std::declval< Iterator const & >())) move_iterator_if_rvalue (Iterator const &_iterator)
 Makes a move iterator if a type is an rvalue.
FCPPT_DETAIL_SYMBOL fcppt::optional_std_string narrow (std::wstring_view _string)
 Converts a std::wstring to std::string, using fcppt::string_conv_locale.
FCPPT_DETAIL_SYMBOL fcppt::optional_std_string narrow_locale (std::wstring_view _string, std::locale const &_locale)
 Converts a std::wstring to std::string, using a locale.
constexpr bool not_ (bool const _value)
 Boolean not.
template<typename Arg>
fcppt::detail::output< Arg > output (Arg const &_arg)
 Outputs an object.
template<typename Source>
fcppt::string output_to_fcppt_string (Source const &_source)
 Converts an arbitrary type to a fcppt::string, using fcppt::insert_extract_locale.
template<typename Source>
fcppt::string output_to_fcppt_string_locale (Source const &_source, std::locale const &_locale)
 Converts an arbitrary type to a fcppt::string, using a custom locale.
template<typename Source>
std::string output_to_std_string (Source const &_source)
 Convert an arbitrary type to a std::string, using fcppt::insert_extract_locale.
template<typename Source>
std::string output_to_std_string_locale (Source const &_source, std::locale const &_locale)
 Convert an arbitrary type to a std::string, using a custom locale.
template<typename Source>
std::wstring output_to_std_wstring (Source const &_source)
 Convert an arbitrary type to a std::wstring, using fcppt::insert_extract_locale.
template<typename Source>
std::wstring output_to_std_wstring_locale (Source const &_source, std::locale const &_locale)
 Convert an arbitrary type to a std::wstring, using a custom locale.
template<typename Dest, typename Source>
Dest output_to_string (Source const &_source)
 Convert an arbitrary type to a string, using fcppt::insert_extract_locale.
template<typename Dest, typename Source>
Dest output_to_string_locale (Source const &_source, std::locale const &_locale)
 Convert an arbitrary type to a string, using a custom locale.
template<typename... Args>
fcppt::overloaded< std::remove_cvref_t< Args >... > overload (Args &&..._args)
 Creates an overloaded lambda.
template<typename Type>
bool operator== (fcppt::recursive< Type > const &_left, fcppt::recursive< Type > const &_right)
 Compares two fcppt::recursive for equality.
template<typename Type>
bool operator!= (fcppt::recursive< Type > const &_left, fcppt::recursive< Type > const &_right)
 Compares two fcppt::recursive for inequality.
template<typename Ch, typename Traits, typename Type>
std::basic_ostream< Ch, Traits > & operator<< (std::basic_ostream< Ch, Traits > &_stream, fcppt::recursive< Type > const &_value)
template<typename T>
bool operator== (fcppt::reference< T > const &_a, fcppt::reference< T > const &_b) noexcept
 Compares two references for equality.
template<typename T>
bool operator!= (fcppt::reference< T > const &_a, fcppt::reference< T > const &_b) noexcept
 Compares two references for inequality.
template<typename T>
bool operator< (fcppt::reference< T > const &_a, fcppt::reference< T > const &_b) noexcept
 Compares two references lexicographically.
template<typename T, typename Ch, typename Traits>
std::basic_ostream< Ch, Traits > & operator<< (std::basic_ostream< Ch, Traits > &_stream, fcppt::reference< T > const &_ref)
 Outputs a reference wrapper to a stream.
template<typename Base, typename Type>
fcppt::reference< Base > reference_to_base (fcppt::reference< Type > const _ref) noexcept
 Converts a reference to a base class.
template<typename Type>
fcppt::reference< Type const > reference_to_const (fcppt::reference< Type > const _ref) noexcept
 Converts a reference to a const reference.
template<typename MaxIndex, typename Index, typename Function, typename FailFunction>
decltype(auto) runtime_index (Index const _index, Function const &_function, FailFunction const &_fail_function)
 Transforms a runtime index into a an integral constant.
template<typename Type1, typename Type2, typename Deleter>
bool operator== (fcppt::shared_ptr< Type1, Deleter > const &left, fcppt::shared_ptr< Type2, Deleter > const &right)
 Compares two shared ptrs for equality.
template<typename Type1, typename Type2, typename Deleter>
bool operator!= (fcppt::shared_ptr< Type1, Deleter > const &left, fcppt::shared_ptr< Type2, Deleter > const &right)
 Compares two shared ptrs for inequality.
template<typename Type1, typename Type2, typename Deleter>
bool operator< (fcppt::shared_ptr< Type1, Deleter > const &left, fcppt::shared_ptr< Type2, Deleter > const &right)
 Checks if one shared ptr is less than the other.
template<typename Type, typename Deleter>
void swap (fcppt::shared_ptr< Type, Deleter > &left, fcppt::shared_ptr< Type, Deleter > &right) noexcept
 Swaps two shared pointers.
template<typename Ch, typename Traits, typename Type, typename Deleter>
std::basic_ostream< Ch, Traits > & operator<< (std::basic_ostream< Ch, Traits > &_stream, fcppt::shared_ptr< Type, Deleter > const &_ptr)
 Outputs a shared pointer.
template<typename Dest, typename Source>
fcppt::shared_ptr< Dest > static_pointer_cast (fcppt::shared_ptr< Source > const &_ptr)
 Casts an fcppt::shared_ptr using static_cast.
FCPPT_DETAIL_SYMBOL std::locale string_conv_locale ()
 Returns the default locale to use when converting between strings.
template<typename StrongTypedef1, typename Function, typename... StrongTypedefs>
auto strong_typedef_apply (Function const &_function, StrongTypedef1 &&_strong_typedef1, StrongTypedefs &&..._strong_typedefs) -> fcppt::strong_typedef< decltype(_function(fcppt::move_if_rvalue< StrongTypedef1 >(_strong_typedef1.get()), fcppt::move_if_rvalue< StrongTypedefs >(_strong_typedefs.get())...)), fcppt::strong_typedef_tag< std::remove_cvref_t< StrongTypedef1 > > >
 Applies a function to multiple strong typedefs.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > operator+ (fcppt::strong_typedef< T, Tag > const &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Add two strong typedefs.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > operator- (fcppt::strong_typedef< T, Tag > const &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Subtract two strong typedefs.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > operator* (fcppt::strong_typedef< T, Tag > const &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Multiply two strong typedefs.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > operator- (fcppt::strong_typedef< T, Tag > const &_value)
 Unary minus.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > & operator++ (fcppt::strong_typedef< T, Tag > &_value)
 Preincrement operator.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > & operator-- (fcppt::strong_typedef< T, Tag > &_value)
 Predecrement operator.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > operator++ (fcppt::strong_typedef< T, Tag > &_value, int)
 Postincrement operator.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > operator-- (fcppt::strong_typedef< T, Tag > &_value, int)
 Postdecrement operator.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > & operator+= (fcppt::strong_typedef< T, Tag > &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Add and assign operator.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > & operator-= (fcppt::strong_typedef< T, Tag > &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Subtract and assign operator.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > & operator*= (fcppt::strong_typedef< T, Tag > &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Multiply and assign operator.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > & operator&= (fcppt::strong_typedef< T, Tag > &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Bitwise and and assign operator.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > & operator|= (fcppt::strong_typedef< T, Tag > &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Bitwise or and assign operator.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > & operator^= (fcppt::strong_typedef< T, Tag > &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Bitwise xor and assign operator.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > operator& (fcppt::strong_typedef< T, Tag > const &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Bitwise and.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > operator| (fcppt::strong_typedef< T, Tag > const &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Bitwise or.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > operator^ (fcppt::strong_typedef< T, Tag > const &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Bitwise xor.
template<typename T, typename Tag>
fcppt::strong_typedef< T, Tag > operator~ (fcppt::strong_typedef< T, Tag > const &_value)
 Bitwise negation.
template<typename T, typename Tag>
bool operator< (fcppt::strong_typedef< T, Tag > const &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Operator less.
template<typename T, typename Tag>
bool operator<= (fcppt::strong_typedef< T, Tag > const &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Operator less equal.
template<typename T, typename Tag>
bool operator> (fcppt::strong_typedef< T, Tag > const &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Operator greater.
template<typename T, typename Tag>
bool operator>= (fcppt::strong_typedef< T, Tag > const &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Operator greater equal.
template<typename T, typename Tag>
bool operator== (fcppt::strong_typedef< T, Tag > const &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Operator equal.
template<typename T, typename Tag>
bool operator!= (fcppt::strong_typedef< T, Tag > const &_left, fcppt::strong_typedef< T, Tag > const &_right)
 Operator not equal.
template<typename StrongTypedef, typename Conv, typename Arg>
requires fcppt::is_strong_typedef<StrongTypedef>::value
constexpr StrongTypedef strong_typedef_construct_cast (Arg const &_arg)
 Applies a cast from fcppt.cast and then construct the strong typedef.
template<typename Ch, typename Traits, typename T, typename Tag>
std::basic_istream< Ch, Traits > & operator>> (std::basic_istream< Ch, Traits > &_stream, fcppt::strong_typedef< T, Tag > &_value)
 Input operator for strong typedefs.
template<typename StrongTypedef, typename Function>
auto strong_typedef_map (StrongTypedef &&_input, Function const &_function) -> fcppt::strong_typedef< decltype(_function(fcppt::move_if_rvalue< StrongTypedef >(_input.get()))), fcppt::strong_typedef_tag< std::remove_cvref_t< StrongTypedef > > >
 Maps over a strong typedef.
template<typename Ch, typename Traits, typename T, typename Tag>
std::basic_ostream< Ch, Traits > & operator<< (std::basic_ostream< Ch, Traits > &_stream, fcppt::strong_typedef< T, Tag > const &_value)
 Output operator for strong typedefs.
FCPPT_DETAIL_SYMBOL fcppt::optional::object< int > system (fcppt::string const &)
 Calls std::system.
FCPPT_DETAIL_SYMBOL fcppt::optional_std_string to_std_string (fcppt::string_view)
 Convert from fcppt::string to std::string using fcppt::string_conv_locale.
FCPPT_DETAIL_SYMBOL fcppt::optional_std_string to_std_string_locale (fcppt::string_view, std::locale const &)
 Convert from fcppt::string to std::string using a custom locale.
FCPPT_DETAIL_SYMBOL std::wstring to_std_wstring (fcppt::string_view)
 Convert from fcppt::string to std::wstring using fcppt::string_conv_locale.
FCPPT_DETAIL_SYMBOL std::wstring to_std_wstring_locale (fcppt::string_view, std::locale const &)
 Convert from fcppt::string to std::wstring using a custom locale.
FCPPT_DETAIL_SYMBOL std::string type_name (char const *)
 Returns a demangled type name if possible.
FCPPT_DETAIL_SYMBOL std::string type_name_from_index (std::type_index const &)
 Returns a demangled type name if possible.
FCPPT_DETAIL_SYMBOL std::string type_name_from_info (std::type_info const &)
 Returns a demangled type name if possible.
template<typename Cast, typename Derived, typename Base, typename Deleter>
fcppt::variant::object< fcppt::unique_ptr< Derived, Deleter >, fcppt::unique_ptr< Base, Deleter > > unique_ptr_dynamic_cast (fcppt::unique_ptr< Base, Deleter > &&_other) noexcept
 Casts a unique_ptr to a derived class.
template<typename Type>
fcppt::optional::object< fcppt::unique_ptr< Type > > unique_ptr_from_std (std::unique_ptr< Type > &&_ptr)
 Converts a std::unique_ptr to an fcppt unique ptr.
template<typename Base, typename Derived, typename Deleter>
fcppt::unique_ptr< Base, Deleter > unique_ptr_to_base (fcppt::unique_ptr< Derived, Deleter > &&_other) noexcept
 Casts a unique_ptr to a base class.
template<typename Type, typename Deleter>
fcppt::unique_ptr< Type const, Deleter > unique_ptr_to_const (fcppt::unique_ptr< Type, Deleter > &&_other) noexcept
 Casts a unique_ptr to a const unique_ptr.
bool operator== (fcppt::unit const &, fcppt::unit const &)
 Compares units for equality.
bool operator!= (fcppt::unit const &, fcppt::unit const &)
 Compares units for inequality.
template<typename Ch, typename Traits>
std::basic_ostream< Ch, Traits > & operator<< (std::basic_ostream< Ch, Traits > &_stream, fcppt::unit const &)
 Outputs a unit to a basic_ostream.
FCPPT_DETAIL_SYMBOL std::string version_string ()
 fcppt's version as a string
template<typename Type1, typename Type2, typename Deleter>
bool operator< (fcppt::weak_ptr< Type1, Deleter > const &left, fcppt::weak_ptr< Type2, Deleter > const &right) noexcept
 Checks if one weak ptr is less than the other.
template<typename Type, typename Deleter>
void swap (fcppt::weak_ptr< Type, Deleter > &left, fcppt::weak_ptr< Type, Deleter > &right) noexcept
 Swaps two weak pointers.
FCPPT_DETAIL_SYMBOL std::wstring widen (std::string_view)
 Converts a std::string to std::wstring, using fcppt::string_conv_locale.
FCPPT_DETAIL_SYMBOL std::wstring widen_locale (std::string_view, std::locale const &)
 Converts a std::string to std::wstring, using a locale.

Detailed Description

The top level namespace.

Function Documentation

◆ operator<<()

template<typename Ch, typename Traits, typename Type>
std::basic_ostream< Ch, Traits > & fcppt::operator<< ( std::basic_ostream< Ch, Traits > & _stream,
fcppt::recursive< Type > const & _value )