ALib C++ Library
Library Version: 2510 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}.
28 template<typename TChar, typename TAllocator>
29 struct 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}.
50 template<typename TChar, typename TAllocator> struct AppendableTraits<boxing::Box, TChar, TAllocator>
51 {
52 //==========================================================================================
53 /// Writes the given boxed object. This is done by invoking box-function
54 /// \alib{boxing;FAppend} on box \p{value}.
55 ///
56 /// @param target The \b AString that \b Append was invoked on.
57 /// @param box The box to its contents to \p{target}.
58 //==========================================================================================
60 {
62 }
63 };
64
65#if DOXYGEN
66} // namespace alib::strings[::appendables]
67#endif
68} // namespace [alib::strings]
69#endif // ALIB_STRINGS
70
71
decltype(std::declval< typename TFDecl::Signature >()(std::declval< Box & >(), std::declval< TArgs >()...)) Call(TArgs &&... args) const
Definition box.inl:1039
#define ALIB_EXPORT
Definition alib.inl:488
boxing::Enum Enum
Type alias in namespace alib.
Definition enum.inl:211
boxing::Box Box
Type alias in namespace alib.
Definition box.inl:1216
Box & CastToBox()
Definition enum.inl:129
void operator()(TAString< TChar, TAllocator > &target, const boxing::Box &box)
void operator()(TAString< TChar, TAllocator > &target, const boxing::Enum &value)