ALib C++ Library
Library Version: 2511 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
strings_appendables.inl
Go to the documentation of this file.
1//==================================================================================================
2/// \file
3/// This header-file is part of the \aliblong.
4/// With supporting legacy or module builds, .mpp-files are either recognized by the build-system
5/// as C++20 Module interface files, or are included by the
6/// \ref alib_manual_modules_impludes "import/include headers".
7///
8/// \emoji :copyright: 2013-2025 A-Worx GmbH, Germany.
9/// Published under \ref mainpage_license "Boost Software License".
10//==================================================================================================
11#if ALIB_STRINGS
12
13ALIB_EXPORT namespace alib::strings {
14// Faking all template specializations of namespace strings for doxygen into namespace
15// strings::APPENDABLES to keep the documentation of namespace string clean!
16#if DOXYGEN
17namespace APPENDABLES {
18#endif
19
20//##################################################################################################
21// AppendableTraits<boxing::Enum>
22//##################################################################################################
23#if ALIB_ENUMRECORDS
24/// Specialization of functor \alib{strings;AppendableTraits} for type \alib{boxing;Enum}.
25/// @tparam TChar The character type of the target \b %Astring.
26/// @tparam TAllocator The allocator that the target \b %AString uses, as prototyped
27/// with \alib{lang;Allocator}.
28template<typename TChar, typename TAllocator>
29struct AppendableTraits<boxing::Enum, TChar,TAllocator>
30{
31 /// Writes the given boxed object. This is done by invoking box-function
32 /// \alib{boxing;FAppend} on box \p{value}.
33 ///
34 /// @param target The \b AString that \b Append was invoked on.
35 /// @param value The enum-box to its contents to \p{target}.
36 void operator()( TAString<TChar,TAllocator>& target, const boxing::Enum& value ) {
38 }
39};
40#endif // ALIB_ENUMRECORDS
41
42//##################################################################################################
43// AppendableTraits<Box>
44//##################################################################################################
45
46/// Specialization of template functor \alib{strings;AppendableTraits} for type \alib{boxing;Box}.
47/// @tparam TChar The character type of the target \b %Astring.
48/// @tparam TAllocator The allocator that the target \b %AString uses, as prototyped with
49/// \alib{lang;Allocator}.
50template<typename TChar, typename TAllocator> struct AppendableTraits<boxing::Box, TChar, TAllocator>
51{
52 /// Writes the given boxed object. This is done by invoking box-function
53 /// \alib{boxing;FAppend} on box \p{value}.
54 ///
55 /// @param target The \b AString that \b Append was invoked on.
56 /// @param box The box to its contents to \p{target}.
59};
60
61#if DOXYGEN
62} // namespace alib::strings[::appendables]
63#endif
64} // namespace [alib::strings]
65#endif // ALIB_STRINGS
decltype(std::declval< typename TFDecl::Signature >()(std::declval< Box & >(), std::declval< TArgs >()...)) Call(TArgs &&... args) const
Definition box.inl:985
#define ALIB_EXPORT
Definition alib.inl:497
boxing::Enum Enum
Type alias in namespace alib.
Definition enum.inl:192
boxing::Box Box
Type alias in namespace alib.
Definition box.inl:1149
Box & CastToBox()
Definition enum.inl:119
void operator()(TAString< TChar, TAllocator > &target, const boxing::Box &box)
void operator()(TAString< TChar, TAllocator > &target, const boxing::Enum &value)