aboutsummaryrefslogtreecommitdiff
path: root/c/util.h
blob: d58301bb8c62b764e20e3d2d85d1a3347cce4c11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef UTIL_H
#define UTIL_H

#include <algorithm>
#include <cstring>
#include <memory>

/* Format static wide string. */
template<size_t N, typename... T>
inline int Swprintf(wchar_t (&buf)[N], const wchar_t* const fmt, T... xs)
{
	return _snwprintf_s(buf, N, _TRUNCATE, fmt, xs...);
}

/* Copy to static narrow string buffer. */
template <size_t N>
inline char* Strcpy(char (&dst)[N], const char* const src)
{
	memcpy(dst, src, std::min(N, strlen(src)));
	dst[N-1] = 0;
	return dst;
}

inline int Cmp(const int a, const int b)
{
	if (a == b) return 0;
	if (a > b) return 1;
	return -1;
}

#endif