4#include "Stroika/Foundation/StroikaPreComp.h"
7#include "Stroika/Foundation/Streams/TextToBinary.h"
14using namespace Stroika::Foundation::DataExchange::Variant;
15using namespace Stroika::Foundation::Streams;
18using Memory::MakeSharedPtr;
29 Rep_ (
const Options& options)
33 virtual _SharedPtrIRep Clone ()
const override
35 return MakeSharedPtr<Rep_> (fOptions_);
37 virtual optional<filesystem::path> GetDefaultFileSuffix ()
const override
47#if USE_NOISY_TRACE_IN_THIS_MODULE_
56#if USE_NOISY_TRACE_IN_THIS_MODULE_
65#if USE_NOISY_TRACE_IN_THIS_MODULE_
71 if (i + 1 != line.
end ()) {
72 sb << fOptions_.fSeparator;
73 if (fOptions_.fSpaceSeparate) {
85CharacterDelimitedLines::Writer::Writer (
const Options& options)
97 Debug::UncheckedDynamicCast<Rep_&> (_GetRep ()).Write (m, out);
auto MakeSharedPtr(ARGS_TYPE &&... args) -> shared_ptr< T >
same as make_shared, but if type T has block allocation, then use block allocation for the 'shared pa...
conditional_t< qStroika_Foundation_Memory_PreferBlockAllocation and andTrueCheck, BlockAllocationUseHelper< T >, Common::Empty > UseBlockAllocationIfAppropriate
Use this to enable block allocation for a particular class. Beware of subclassing.
Similar to String, but intended to more efficiently construct a String. Mutable type (String is large...
String is like std::u32string, except it is much easier to use, often much more space efficient,...
A generalization of a vector: a container whose elements are keyed by the natural numbers.
nonvirtual RESULT_CONTAINER Map(ELEMENT_MAPPER &&elementMapper) const
'override' Iterable<>::Map () function so RESULT_CONTAINER defaults to Sequence, and improve that cas...
Simple variant-value (case variant union) object, with (variant) basic types analogous to a value in ...
OutputStream<>::Ptr is Smart pointer to a stream-based sink of data.
nonvirtual void WriteLn(ELT_2_WRITE &&arg) const
Iterable<T> is a base class for containers which easily produce an Iterator<T> to traverse them.
nonvirtual Iterator< T > begin() const
Support for ranged for, and STL syntax in general.
static constexpr default_sentinel_t end() noexcept
Support for ranged for, and STL syntax in general.
An Iterator<T> is a copyable object which allows traversing the contents of some container....
Ptr New(const Streams::OutputStream::Ptr< byte > &src, const Characters::CodeCvt<> &char2OutputConverter)