16 #ifndef INCLUDE_NN_NLIB_URITEMPLATE_H_ 17 #define INCLUDE_NN_NLIB_URITEMPLATE_H_ 22 #include "nn/nlib/Swap.h" 31 static bool IsUriTemplate(
const char* first,
const char* last)
NLIB_NOEXCEPT;
52 return Resolve(written, str, N);
54 std::pair<errno_t, size_t> Resolve(
char* str,
size_t n)
const NLIB_NOEXCEPT {
56 errno_t e = Resolve(&written, str, n);
57 return std::make_pair(e, written);
60 std::pair<errno_t, size_t> Resolve(
char (&str)[N])
const NLIB_NOEXCEPT {
62 errno_t e = Resolve(&written, str, N);
63 return std::make_pair(e, written);
67 struct UriTemplatePrivate;
68 mutable UriTemplatePrivate* prv_;
73 #ifndef __cpp_rvalue_references 76 #endif // INCLUDE_NN_NLIB_URITEMPLATE_H_ #define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
errno_t SetTemplate(const char *str) noexcept
SetTemplate(str, nlib_strlen(str))を返します。
URI Template(RFC 6570, Level3)をサポートします。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_CEXPR
利用可能であればconstexprが定義されます。そうでない場合は空文字列です。
errno_t Resolve(size_t *written, char(&str)[N]) const noexcept
Resolve(written, str, N)を呼び出します。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
static bool IsUriTemplate(const char *str) noexcept
IsUriTemplate(str, str + strlen(str))を返します。