mirror of
https://github.com/zeromq/cppzmq.git
synced 2024-12-12 10:33:52 +01:00
Add user-defined string literals to create buffers
This commit is contained in:
parent
ab588fb7c9
commit
7d9e5cb421
@ -250,6 +250,38 @@ TEST_CASE("const_buffer creation with str_buffer", "[buffer]")
|
||||
CHECK(std::string(static_cast<const char*>(b2.data()), b2.size()) == "hello");
|
||||
}
|
||||
|
||||
TEST_CASE("const_buffer creation with zbuf string literal char", "[buffer]")
|
||||
{
|
||||
using namespace zmq::literals;
|
||||
constexpr zmq::const_buffer b = "hello"_zbuf;
|
||||
CHECK(b.size() == 5);
|
||||
CHECK(std::memcmp(b.data(), "hello", b.size()) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("const_buffer creation with zbuf string literal wchar_t", "[buffer]")
|
||||
{
|
||||
using namespace zmq::literals;
|
||||
constexpr zmq::const_buffer b = L"hello"_zbuf;
|
||||
CHECK(b.size() == 5 * sizeof(wchar_t));
|
||||
CHECK(std::memcmp(b.data(), L"hello", b.size()) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("const_buffer creation with zbuf string literal char16_t", "[buffer]")
|
||||
{
|
||||
using namespace zmq::literals;
|
||||
constexpr zmq::const_buffer b = u"hello"_zbuf;
|
||||
CHECK(b.size() == 5 * sizeof(char16_t));
|
||||
CHECK(std::memcmp(b.data(), u"hello", b.size()) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("const_buffer creation with zbuf string literal char32_t", "[buffer]")
|
||||
{
|
||||
using namespace zmq::literals;
|
||||
constexpr zmq::const_buffer b = U"hello"_zbuf;
|
||||
CHECK(b.size() == 5 * sizeof(char32_t));
|
||||
CHECK(std::memcmp(b.data(), U"hello", b.size()) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("buffer of structs", "[buffer]")
|
||||
{
|
||||
struct some_pod
|
||||
|
20
zmq.hpp
20
zmq.hpp
@ -1124,6 +1124,26 @@ constexpr const_buffer str_buffer(const Char (&data)[N]) noexcept
|
||||
(N - 1) * sizeof(Char));
|
||||
}
|
||||
|
||||
namespace literals
|
||||
{
|
||||
constexpr const_buffer operator"" _zbuf(const char* str, size_t len) noexcept
|
||||
{
|
||||
return const_buffer(str, len * sizeof(char));
|
||||
}
|
||||
constexpr const_buffer operator"" _zbuf(const wchar_t* str, size_t len) noexcept
|
||||
{
|
||||
return const_buffer(str, len * sizeof(wchar_t));
|
||||
}
|
||||
constexpr const_buffer operator"" _zbuf(const char16_t* str, size_t len) noexcept
|
||||
{
|
||||
return const_buffer(str, len * sizeof(char16_t));
|
||||
}
|
||||
constexpr const_buffer operator"" _zbuf(const char32_t* str, size_t len) noexcept
|
||||
{
|
||||
return const_buffer(str, len * sizeof(char32_t));
|
||||
}
|
||||
}
|
||||
|
||||
#endif // ZMQ_CPP11
|
||||
|
||||
namespace detail
|
||||
|
Loading…
Reference in New Issue
Block a user