@@ -1376,6 +1376,39 @@ constexpr const_buffer operator"" _zbuf(const char32_t *str, size_t len) noexcep
1376
1376
}
1377
1377
}
1378
1378
1379
+ #ifdef ZMQ_CPP11
1380
+ enum class socket_type : int
1381
+ {
1382
+ req = ZMQ_REQ,
1383
+ rep = ZMQ_REP,
1384
+ dealer = ZMQ_DEALER,
1385
+ router = ZMQ_ROUTER,
1386
+ pub = ZMQ_PUB,
1387
+ sub = ZMQ_SUB,
1388
+ xpub = ZMQ_XPUB,
1389
+ xsub = ZMQ_XSUB,
1390
+ push = ZMQ_PUSH,
1391
+ pull = ZMQ_PULL,
1392
+ #if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 0)
1393
+ server = ZMQ_SERVER,
1394
+ client = ZMQ_CLIENT,
1395
+ radio = ZMQ_RADIO,
1396
+ dish = ZMQ_DISH,
1397
+ gather = ZMQ_GATHER,
1398
+ scatter = ZMQ_SCATTER,
1399
+ dgram = ZMQ_DGRAM,
1400
+ #endif
1401
+ #if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 3, 3)
1402
+ peer = ZMQ_PEER,
1403
+ channel = ZMQ_CHANNEL,
1404
+ #endif
1405
+ #if ZMQ_VERSION_MAJOR >= 4
1406
+ stream = ZMQ_STREAM,
1407
+ #endif
1408
+ pair = ZMQ_PAIR
1409
+ };
1410
+ #endif
1411
+
1379
1412
namespace sockopt
1380
1413
{
1381
1414
// There are two types of options,
@@ -1615,7 +1648,10 @@ ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TOS, tos, int);
1615
1648
#endif
1616
1649
#ifdef ZMQ_TYPE
1617
1650
ZMQ_DEFINE_INTEGRAL_OPT (ZMQ_TYPE, type, int );
1618
- #endif
1651
+ #ifdef ZMQ_CPP11
1652
+ ZMQ_DEFINE_INTEGRAL_OPT (ZMQ_TYPE, socket_type, socket_type);
1653
+ #endif // ZMQ_CPP11
1654
+ #endif // ZMQ_TYPE
1619
1655
#ifdef ZMQ_UNSUBSCRIBE
1620
1656
ZMQ_DEFINE_ARRAY_OPT (ZMQ_UNSUBSCRIBE, unsubscribe);
1621
1657
#endif
@@ -1757,7 +1793,7 @@ class socket_base
1757
1793
template <int Opt, class T , bool BoolUnit>
1758
1794
ZMQ_NODISCARD T get (sockopt::integral_option<Opt, T, BoolUnit>) const
1759
1795
{
1760
- static_assert (std::is_integral <T>::value, " T must be integral " );
1796
+ static_assert (std::is_scalar <T>::value, " T must be scalar " );
1761
1797
T val;
1762
1798
size_t size = sizeof val;
1763
1799
get_option (Opt, &val, &size);
@@ -2026,39 +2062,6 @@ class socket_base
2026
2062
};
2027
2063
} // namespace detail
2028
2064
2029
- #ifdef ZMQ_CPP11
2030
- enum class socket_type : int
2031
- {
2032
- req = ZMQ_REQ,
2033
- rep = ZMQ_REP,
2034
- dealer = ZMQ_DEALER,
2035
- router = ZMQ_ROUTER,
2036
- pub = ZMQ_PUB,
2037
- sub = ZMQ_SUB,
2038
- xpub = ZMQ_XPUB,
2039
- xsub = ZMQ_XSUB,
2040
- push = ZMQ_PUSH,
2041
- pull = ZMQ_PULL,
2042
- #if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 0)
2043
- server = ZMQ_SERVER,
2044
- client = ZMQ_CLIENT,
2045
- radio = ZMQ_RADIO,
2046
- dish = ZMQ_DISH,
2047
- gather = ZMQ_GATHER,
2048
- scatter = ZMQ_SCATTER,
2049
- dgram = ZMQ_DGRAM,
2050
- #endif
2051
- #if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 3, 3)
2052
- peer = ZMQ_PEER,
2053
- channel = ZMQ_CHANNEL,
2054
- #endif
2055
- #if ZMQ_VERSION_MAJOR >= 4
2056
- stream = ZMQ_STREAM,
2057
- #endif
2058
- pair = ZMQ_PAIR
2059
- };
2060
- #endif
2061
-
2062
2065
struct from_handle_t
2063
2066
{
2064
2067
struct _private
0 commit comments