Beispiel #1
0
        inline void stringifyMapImpl(
            std::ostream& mStream, const T& mValue, const TSep& mSeparator)
        {
            auto itrBegin(std::begin(mValue));
            if(std::begin(mValue) == std::end(mValue))
            {
                printBold<TFmt>(mStream, "{ EMPTY }");
                return;
            }

            printBold<TFmt>(mStream, "{");

            repeatPenultimate(itrBegin, std::end(mValue),
                [&mStream, &mSeparator](const auto& mE)
                {
                    callStringifyImpl<TFmt>(mStream, mE.first);
                    printBold<TFmt>(mStream, mSeparator);
                    callStringifyImpl<TFmt>(mStream, mE.second);
                },
                [&mStream](const auto&)
                {
                    printBold<TFmt>(mStream, ", ");
                });

            printBold<TFmt>(mStream, "}");
        }
Beispiel #2
0
			template<bool TFmt> inline static void impl(std::ostream& mStream, const T& mValue)
			{
				auto itrBegin(std::begin(mValue));
				if(itrBegin == std::end(mValue)) { printBold<TFmt>(mStream, "{ EMPTY }"); return; }

				printBold<TFmt>(mStream, "{");
				repeatPenultimate(itrBegin, std::end(mValue), [&mStream](const auto& mE){ callStringifyImpl<TFmt>(mStream, mE); }, [&mStream](auto&){ printBold<TFmt>(mStream, ", "); });
				printBold<TFmt>(mStream, "}");
			}
Beispiel #3
0
		/// @brief Map stringifier. Streams each key <separator> value pair, separated by commas.
		template<bool TFmt, typename T, typename TSep> inline void stringifyMapImpl(std::ostream& mStream, const T& mValue, const TSep& mSeparator)
		{
			auto itrBegin(std::begin(mValue));
			if(std::begin(mValue) == std::end(mValue)) { printBold<TFmt>(mStream, "{ EMPTY }"); return; }

			printBold<TFmt>(mStream, "{");

			// C++14: `auto` lambda
			repeatPenultimate(itrBegin, std::end(mValue), [&mStream, &mSeparator](decltype(*itrBegin) mE)
			{
				callStringifyImpl<TFmt>(mStream, mE.first);
				printBold<TFmt>(mStream, mSeparator);
				callStringifyImpl<TFmt>(mStream, mE.second);
			}, [&mStream](decltype(*itrBegin)){ printBold<TFmt>(mStream, ", "); });

			printBold<TFmt>(mStream, "}");
		}