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;
48 return Resolve(written, str, N);
52 errno_t e = Resolve(&written, str, n);
53 return std::make_pair(e, written);
58 errno_t e = Resolve(&written, str, N);
59 return std::make_pair(e, written);
63 struct UriTemplatePrivate;
64 mutable UriTemplatePrivate* prv_;
69 #ifndef __cpp_rvalue_references 72 #endif // INCLUDE_NN_NLIB_URITEMPLATE_H_ #define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
~UriTemplate() noexcept
デストラクタです。
URI Template(RFC 6570, Level3)をサポートします。
std::pair< errno_t, size_t > Resolve(char *str, size_t n) const noexcept
URIテンプレートに値を代入した文字列をstrに書き込みます。
constexpr UriTemplate() noexcept
デフォルトコンストラクタです。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_CEXPR
利用可能であればconstexprが定義されます。そうでない場合は空文字列です。
std::pair< errno_t, size_t > Resolve(char(&str)[N]) const noexcept
上記関数のテンプレートオーバーロードです。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
static bool IsUriTemplate(const char *str) noexcept
上記関数の引数省略版で、ヌル終端する文字列を受け取ります。