templatevoid print(const T& arg) { wstringstream ss; ss << arg; HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); DWORD charsWritten; wstring str = ss.str(); WriteConsoleW(hStdOut, str.c_str(), str.size(), &charsWritten, NULL); } template void print(const T1& arg1, const T2& arg2, Ts... rest) { wstringstream ss; ss << arg1 << arg2; print(ss.str(), rest...); } int main() { print(L"这是", 1, L"个类型安全的", L"printf\n"); }