例は確かに正しいです。バージョンの時点で --
Microsoft Visual Studio 2005
Version 8.0.50727.867 (vsvista.050727-8600)
...
Visual C++ 77626-009-0000007-41722
-- これには、SP1、vista ホットフィックス、およびいくつかのライブラリ ホットフィックスが含まれます -- 上記の機能
template <size_t size>
int _snprintf_s(
char (&buffer)[size],
size_t count,
const char *format [,
argument] ...
);
まだバギーです。しかし、本当に魅力的なのは、4つのバリアント機能のうち、この機能だけが機能することです。
- わかった:
int _snprintf_s(char *buffer, size_t sizeOfBuffer, size_t count, :::
- バギー:
template <size_t size> int _snprintf_s(char (&buffer)[size], size_t count, :::
- OK:
int _snwprintf_s
(ワイド文字バージョン)
- OK:
template <size_t size> int _snwprintf_s
(はい、ワイド文字バージョンは OK)
つまり、非テンプレート バージョンを使用している場合は問題ありません。ワイド文字バージョンのいずれかを使用している場合も問題ありません。すばらしい。