- // -------------------------------------------------------------------------
- // FUNCTION: CStdStr::Format
- // void _cdecl Formst(CStdStringA& PCSTR szFormat, ...)
- // void _cdecl Format(PCSTR szFormat);
- //
- // DESCRIPTION:
- // This function does sprintf/wsprintf style formatting on CStdStringA
- // objects. It looks a lot like MFC's CString::Format. Some people
- // might even call this identical. Fortunately, these people are now
- // dead... heh heh.
- //
- // PARAMETERS:
- // nId - ID of string resource holding the format string
- // szFormat - a PCSTR holding the format specifiers
- // argList - a va_list holding the arguments for the format specifiers.
- //
- // RETURN VALUE: None.
- // -------------------------------------------------------------------------
- // formatting (using wsprintf style formatting)
-
- // If they want a Format() function that safely handles string objects
- // without casting
-
-#ifdef SS_SAFE_FORMAT
-
- // Question: Joe, you wacky coder you, why do you have so many overloads
- // of the Format() function
- // Answer: One reason only - CString compatability. In short, by making
- // the Format() function a template this way, I can do strong typing
- // and allow people to pass CStdString arguments as fillers for
- // "%s" format specifiers without crashing their program! The downside
- // is that I need to overload on the number of arguments. If you are
- // passing more arguments than I have listed below in any of my
- // overloads, just add another one.
- //
- // Yes, yes, this is really ugly. In essence what I am doing here is
- // protecting people from a bad (and incorrect) programming practice
- // that they should not be doing anyway. I am protecting them from
- // themselves. Why am I doing this? Well, if you had any idea the
- // number of times I've been emailed by people about this
- // "incompatability" in my code, you wouldn't ask.
-
- void Fmt(const CT* szFmt, ...)
- {
- va_list argList;
- va_start(argList, szFmt);
- FormatV(szFmt, argList);
- va_end(argList);
- }
-
-#ifndef SS_ANSI
-
- void Format(UINT nId)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- this->swap(strFmt);
- }
- template<class A1>
- void Format(UINT nId, const A1& v)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- Fmt(strFmt, FmtArg<A1>(v)());
- }
- template<class A1, class A2>
- void Format(UINT nId, const A1& v1, const A2& v2)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)());
- }
- template<class A1, class A2, class A3>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)());
- }
- }
- template<class A1, class A2, class A3, class A4>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(),FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(),FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(),FmtArg<A10>(v10)(),FmtArg<A11>(v11)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11, class A12>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11,
- const A12& v12)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)(),FmtArg<A11>(v11)(),
- FmtArg<A12>(v12)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11, class A12,
- class A13>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11,
- const A12& v12, const A13& v13)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)(),FmtArg<A11>(v11)(),
- FmtArg<A12>(v12)(), FmtArg<A13>(v13)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11, class A12,
- class A13, class A14>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11,
- const A12& v12, const A13& v13, const A14& v14)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)(),FmtArg<A11>(v11)(),
- FmtArg<A12>(v12)(), FmtArg<A13>(v13)(),FmtArg<A14>(v14)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11, class A12,
- class A13, class A14, class A15>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11,
- const A12& v12, const A13& v13, const A14& v14, const A15& v15)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)(),FmtArg<A11>(v11)(),
- FmtArg<A12>(v12)(),FmtArg<A13>(v13)(),FmtArg<A14>(v14)(),
- FmtArg<A15>(v15)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11, class A12,
- class A13, class A14, class A15, class A16>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11,
- const A12& v12, const A13& v13, const A14& v14, const A15& v15,
- const A16& v16)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)(),FmtArg<A11>(v11)(),
- FmtArg<A12>(v12)(),FmtArg<A13>(v13)(),FmtArg<A14>(v14)(),
- FmtArg<A15>(v15)(), FmtArg<A16>(v16)());
- }
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11, class A12,
- class A13, class A14, class A15, class A16, class A17>
- void Format(UINT nId, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11,
- const A12& v12, const A13& v13, const A14& v14, const A15& v15,
- const A16& v16, const A17& v17)
- {
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- {
- Fmt(strFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)(),FmtArg<A11>(v11)(),
- FmtArg<A12>(v12)(),FmtArg<A13>(v13)(),FmtArg<A14>(v14)(),
- FmtArg<A15>(v15)(),FmtArg<A16>(v16)(),FmtArg<A17>(v17)());
- }
- }
-
-#endif // #ifndef SS_ANSI
-
- // ...now the other overload of Format: the one that takes a string literal
-
- void Format(const CT* szFmt)
- {
- *this = szFmt;
- }
- template<class A1>
- void Format(const CT* szFmt, const A1& v)
- {
- Fmt(szFmt, FmtArg<A1>(v)());
- }
- template<class A1, class A2>
- void Format(const CT* szFmt, const A1& v1, const A2& v2)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)());
- }
- template<class A1, class A2, class A3>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)());
- }
- template<class A1, class A2, class A3, class A4>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)());
- }
- template<class A1, class A2, class A3, class A4, class A5>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)());
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)());
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)());
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)());
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)());
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)());
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(),FmtArg<A10>(v10)(),FmtArg<A11>(v11)());
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11, class A12>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11,
- const A12& v12)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)(),FmtArg<A11>(v11)(),
- FmtArg<A12>(v12)());
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11, class A12,
- class A13>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11,
- const A12& v12, const A13& v13)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)(),FmtArg<A11>(v11)(),
- FmtArg<A12>(v12)(), FmtArg<A13>(v13)());
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11, class A12,
- class A13, class A14>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11,
- const A12& v12, const A13& v13, const A14& v14)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)(),FmtArg<A11>(v11)(),
- FmtArg<A12>(v12)(), FmtArg<A13>(v13)(),FmtArg<A14>(v14)());
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11, class A12,
- class A13, class A14, class A15>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11,
- const A12& v12, const A13& v13, const A14& v14, const A15& v15)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)(),FmtArg<A11>(v11)(),
- FmtArg<A12>(v12)(),FmtArg<A13>(v13)(),FmtArg<A14>(v14)(),
- FmtArg<A15>(v15)());
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11, class A12,
- class A13, class A14, class A15, class A16>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11,
- const A12& v12, const A13& v13, const A14& v14, const A15& v15,
- const A16& v16)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)(),FmtArg<A11>(v11)(),
- FmtArg<A12>(v12)(),FmtArg<A13>(v13)(),FmtArg<A14>(v14)(),
- FmtArg<A15>(v15)(), FmtArg<A16>(v16)());
- }
- template<class A1, class A2, class A3, class A4, class A5, class A6,
- class A7, class A8, class A9, class A10, class A11, class A12,
- class A13, class A14, class A15, class A16, class A17>
- void Format(const CT* szFmt, const A1& v1, const A2& v2, const A3& v3,
- const A4& v4, const A5& v5, const A6& v6, const A7& v7,
- const A8& v8, const A9& v9, const A10& v10, const A11& v11,
- const A12& v12, const A13& v13, const A14& v14, const A15& v15,
- const A16& v16, const A17& v17)
- {
- Fmt(szFmt, FmtArg<A1>(v1)(), FmtArg<A2>(v2)(),
- FmtArg<A3>(v3)(), FmtArg<A4>(v4)(), FmtArg<A5>(v5)(),
- FmtArg<A6>(v6)(), FmtArg<A7>(v7)(), FmtArg<A8>(v8)(),
- FmtArg<A9>(v9)(), FmtArg<A10>(v10)(),FmtArg<A11>(v11)(),
- FmtArg<A12>(v12)(),FmtArg<A13>(v13)(),FmtArg<A14>(v14)(),
- FmtArg<A15>(v15)(),FmtArg<A16>(v16)(),FmtArg<A17>(v17)());
- }
-
-#else // #ifdef SS_SAFE_FORMAT
-
-
-#ifndef SS_ANSI
-
- void Format(UINT nId, ...)
- {
- va_list argList;
- va_start(argList, nId);
-
- MYTYPE strFmt;
- if ( strFmt.Load(nId) )
- FormatV(strFmt, argList);
-
- va_end(argList);
- }
-
-#endif // #ifdef SS_ANSI
-
- void Format(const CT* szFmt, ...)
- {
- va_list argList;
- va_start(argList, szFmt);
- FormatV(szFmt, argList);
- va_end(argList);
- }
-
-#endif // #ifdef SS_SAFE_FORMAT
-