static int main_(int /* argc */, char** /*argv*/) { ff::sinks::speech_sink sink(SPF_IS_FILENAME); #ifdef FASTFORMAT_USE_VOLE vole::object speaker(comstl::interface_cast<IDispatch>(sink.get())); #endif /* FASTFORMAT_USE_VOLE */ #ifdef FASTFORMAT_USE_VOLE { for(long rate = 0; 5 != rate; ++rate) { speaker.put_property(L"Rate", rate * 2); #endif /* FASTFORMAT_USE_VOLE */ ff::fmt(sink , FF_STR("This is a demonstration of FastFormat's ability to speak, compiled with {0}, in configuration {1}, and with the {2} encoding") /* {0}: compiler name */ , FF_STRINGIZE(STLSOFT_COMPILER_VERSION_STRING) /* {1}: configuration */ , FF_STRINGIZE(FF_CONFIGURATION) /* {2}: encoding */ , FF_STRINGIZE(FF_ENCODING) ); #ifdef FASTFORMAT_USE_VOLE }} #endif /* FASTFORMAT_USE_VOLE */ return EXIT_SUCCESS; }
static void test_1_10() { std::string sink; ff::flush(ff::fmt(sink, FF_STR("{0}"), FF_STR(""))); XTESTS_TEST_INTEGER_EQUAL(0u, sink.size()); XTESTS_TEST_STRING_EQUAL("", sink.data()); ff::flush(ff::fmt(sink, FF_STR("{0}"), FF_STR("abc"))); XTESTS_TEST_INTEGER_EQUAL(3u, sink.size()); XTESTS_TEST_STRING_EQUAL("abc", sink.data()); ff::flush(ff::fmt(sink, FF_STR("{0}"), FF_STR(""))); XTESTS_TEST_INTEGER_EQUAL(3u, sink.size()); XTESTS_TEST_STRING_EQUAL("abc", sink.data()); }
static int main_(int /* argc */, char** /* argv */) { { #if 1 FILE* file = stdout; ff::fmtln(file #else /* ? 0 */ ff::fmtln(ff::FILE_ref(stdout, ff::buffered) #endif /* 0 */ , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); } { FILE* file = stdout; ff::fmt(file , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); puts(""); } { ff::fmt(ff::to_sink(stdout) , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); puts(""); } try { FILE* file = stdin; ff::fmt(file , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); puts(""); } catch(ff::sink_output_exception& x) { FILE* file = stderr; ff::writeln(file, x); } #ifdef DO_OTHER_TYPE_TESTS # if 0 { FILE* sink = stdout; ff::fmt(ff::flushed(stdout) , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); puts(""); } { ff::fmt(ff::flushed(std_cout) , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); puts(""); } { std_string sink; ff::fmt(ff::flushed(sink) , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); } { stlsoft::auto_buffer<ff::ff_char_t, 1000> sink(0); ff::fmt(ff::flushed(sink) , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); } { ff::ff_char_t buff[1001]; ff::sinks::char_buffer_sink sink(STLSOFT_NUM_ELEMENTS(buff), buff); ff::fmt(ff::flushed(sink) , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); } { ff::ff_char_t buff[1001]; ff::sinks::c_string_sink sink(STLSOFT_NUM_ELEMENTS(buff), buff); ff::fmt(ff::flushed(sink) , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); } { ff::sinks::null_sink sink; ff::fmt(ff::flushed(sink) , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); } # if defined(WIN32) || \ defined(WIN64) { CComBSTR sink; ff::fmt(ff::flushed(sink) , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); } { CString sink; ff::fmt(ff::flushed(sink) , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); } { ff::sinks::OutputDebugString_sink sink; ff::fmtln(ff::flushed(sink) , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def")); } # endif # else { FILE* sink = stdout; ff::flush( ff::fmt( sink , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def") ) ); puts(""); } { ff::flush( ff::fmt( std_cout , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def") ) ); puts(""); } { std_string sink; ff::flush( ff::fmt( sink , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def") ) ); } # if 0 { stlsoft::auto_buffer<ff::ff_char_t, 1000> sink(0); ff::flush( ff::fmt( sink , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def") ) ); } # endif /* 0 */ { ff::ff_char_t buff[1001]; ff::sinks::char_buffer_sink sink(STLSOFT_NUM_ELEMENTS(buff), buff); ff::flush( ff::fmt( sink , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def") ) ); } { ff::ff_char_t buff[1001]; ff::sinks::c_string_sink sink(STLSOFT_NUM_ELEMENTS(buff), buff); ff::flush( ff::fmt( sink , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def") ) ); } { ff::sinks::null_sink sink; ff::flush( ff::fmt( sink , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def") ) ); } # if defined(WIN32) || \ defined(WIN64) { CComBSTR sink; ff::flush( ff::fmt( sink , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def") ) ); } # ifdef USE_MFC { CString sink; ff::flush( ff::fmt( sink , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def") ) ); } # endif { ff::sinks::OutputDebugString_sink sink; ff::flush( ff::fmt( sink , FF_STR("Param #1: {0}; param #2: {1}; param #1 again: {0}"), FF_STR("abc"), FF_STR("def") ) ); } # endif # endif #endif /* DO_OTHER_TYPE_TESTS */ return EXIT_SUCCESS; }