forked from boostorg/mqtt5
Add support for g++-9 compiler
Summary: related to #7, T13767 Reviewers: ivica Reviewed By: ivica Subscribers: miljen, iljazovic Differential Revision: https://repo.mireo.local/D29302
This commit is contained in:
10
.github/workflows/ci.yml
vendored
10
.github/workflows/ci.yml
vendored
@ -117,6 +117,16 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
|
- toolset: g++-9
|
||||||
|
compiler: g++-9
|
||||||
|
install: g++-9
|
||||||
|
os: ubuntu-latest
|
||||||
|
container: ubuntu:22.04
|
||||||
|
build-type: 'Release'
|
||||||
|
cxxstd: 17
|
||||||
|
cxxflags: ''
|
||||||
|
ldflags: ''
|
||||||
|
|
||||||
- toolset: g++-10
|
- toolset: g++-10
|
||||||
compiler: g++-10
|
compiler: g++-10
|
||||||
install: g++-10
|
install: g++-10
|
||||||
|
@ -89,10 +89,10 @@ To see more examples, visit [Examples](https://github.com/mireo/async-mqtt5/tree
|
|||||||
Building with CMake
|
Building with CMake
|
||||||
---------
|
---------
|
||||||
You can use the `CMakeLists.txt` provided in our repository to compile and run any of the [examples](https://github.com/mireo/async-mqtt5/tree/master/example) or your own source files.
|
You can use the `CMakeLists.txt` provided in our repository to compile and run any of the [examples](https://github.com/mireo/async-mqtt5/tree/master/example) or your own source files.
|
||||||
The following commands demonstrate compiling and running the previous code using CMake.
|
The following commands demonstrate compiling and running the previous code using CMake on Linux.
|
||||||
The source file is located at [example/hello_world_over_tcp.cpp](https://github.com/mireo/async-mqtt5/blob/master/example/hello_world_over_tcp.cpp).
|
The source file is located at [example/hello_world_over_tcp.cpp](https://github.com/mireo/async-mqtt5/blob/master/example/hello_world_over_tcp.cpp).
|
||||||
|
|
||||||
```
|
```bash
|
||||||
# navigate to the root folder of Async.MQTT5
|
# navigate to the root folder of Async.MQTT5
|
||||||
|
|
||||||
# compile the example
|
# compile the example
|
||||||
@ -129,7 +129,7 @@ Async.MQTT5 is a header-only library. To use Async.MQTT5 it requires the followi
|
|||||||
|
|
||||||
Async.MQTT5 has been tested with the following compilers:
|
Async.MQTT5 has been tested with the following compilers:
|
||||||
- clang 12.0, 13.0, 14.0, 15.0 (Linux)
|
- clang 12.0, 13.0, 14.0, 15.0 (Linux)
|
||||||
- GCC 10, 11, 12 (Linux)
|
- GCC 9, 10, 11, 12 (Linux)
|
||||||
- MSVC 14.37 - Visual Studio 2022 (Windows)
|
- MSVC 14.37 - Visual Studio 2022 (Windows)
|
||||||
|
|
||||||
Contributing
|
Contributing
|
||||||
|
@ -81,7 +81,7 @@ To see more examples, visit [link async_mqtt5.examples Examples].
|
|||||||
|
|
||||||
[heading Building with CMake]
|
[heading Building with CMake]
|
||||||
You can use the `CMakeLists.txt` provided in our repository to compile and run any of the [link async_mqtt5.examples examples] or your own source files.
|
You can use the `CMakeLists.txt` provided in our repository to compile and run any of the [link async_mqtt5.examples examples] or your own source files.
|
||||||
The following commands demonstrate compiling and running the previous code using CMake.
|
The following commands demonstrate compiling and running the previous code using CMake on Linux.
|
||||||
The source file is located at [ghreflink example/hello_world_over_tcp.cpp example/hello_world_over_tcp.cpp].
|
The source file is located at [ghreflink example/hello_world_over_tcp.cpp example/hello_world_over_tcp.cpp].
|
||||||
|
|
||||||
# navigate to the root folder of Async.MQTT5
|
# navigate to the root folder of Async.MQTT5
|
||||||
@ -122,7 +122,7 @@ To use __Self__ it requires the following:
|
|||||||
__Self__ has been tested with the following compilers:
|
__Self__ has been tested with the following compilers:
|
||||||
|
|
||||||
* clang 12.0, 13.0, 14.0, 15.0 (Linux)
|
* clang 12.0, 13.0, 14.0, 15.0 (Linux)
|
||||||
* GCC 10, 11, 12 (Linux)
|
* GCC 9, 10, 11, 12 (Linux)
|
||||||
* MSVC 14.37 - Visual Studio 2022 (Windows)
|
* MSVC 14.37 - Visual Studio 2022 (Windows)
|
||||||
|
|
||||||
[heading Acknowledgements]
|
[heading Acknowledgements]
|
||||||
|
@ -34,11 +34,10 @@ private:
|
|||||||
Handler _handler;
|
Handler _handler;
|
||||||
public:
|
public:
|
||||||
tracked_op(Handler&& h, const Executor& ex) :
|
tracked_op(Handler&& h, const Executor& ex) :
|
||||||
_executor(tracking_executor(h, ex)),
|
_executor(tracking_executor(h, ex)), _handler(std::move(h))
|
||||||
_handler(std::move(h))
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
tracked_op(tracked_op&&) noexcept = default;
|
tracked_op(tracked_op&&) = default;
|
||||||
tracked_op(const tracked_op&) = delete;
|
tracked_op(const tracked_op&) = delete;
|
||||||
|
|
||||||
using executor_type = tracking_type<Handler, Executor>;
|
using executor_type = tracking_type<Handler, Executor>;
|
||||||
|
@ -31,7 +31,7 @@ public:
|
|||||||
)
|
)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
cancellable_handler(cancellable_handler&& other) noexcept = default;
|
cancellable_handler(cancellable_handler&&) = default;
|
||||||
cancellable_handler(const cancellable_handler&) = delete;
|
cancellable_handler(const cancellable_handler&) = delete;
|
||||||
|
|
||||||
using executor_type = tracking_type<Handler, Executor>;
|
using executor_type = tracking_type<Handler, Executor>;
|
||||||
|
@ -45,8 +45,7 @@ public:
|
|||||||
const std::shared_ptr<client_service>& svc_ptr,
|
const std::shared_ptr<client_service>& svc_ptr,
|
||||||
DisconnectContext&& context, Handler&& handler
|
DisconnectContext&& context, Handler&& handler
|
||||||
) :
|
) :
|
||||||
_svc_ptr(svc_ptr),
|
_svc_ptr(svc_ptr), _context(std::move(context)),
|
||||||
_context(std::move(context)),
|
|
||||||
_handler(std::move(handler), _svc_ptr->get_executor())
|
_handler(std::move(handler), _svc_ptr->get_executor())
|
||||||
{
|
{
|
||||||
auto slot = asio::get_associated_cancellation_slot(_handler);
|
auto slot = asio::get_associated_cancellation_slot(_handler);
|
||||||
@ -56,7 +55,7 @@ public:
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect_op(disconnect_op&&) noexcept = default;
|
disconnect_op(disconnect_op&&) = default;
|
||||||
disconnect_op(const disconnect_op&) = delete;
|
disconnect_op(const disconnect_op&) = delete;
|
||||||
|
|
||||||
using executor_type = asio::associated_executor_t<handler_type>;
|
using executor_type = asio::associated_executor_t<handler_type>;
|
||||||
@ -185,7 +184,7 @@ public:
|
|||||||
_handler(std::move(handler), _svc_ptr->get_executor())
|
_handler(std::move(handler), _svc_ptr->get_executor())
|
||||||
{}
|
{}
|
||||||
|
|
||||||
terminal_disconnect_op(terminal_disconnect_op&&) noexcept = default;
|
terminal_disconnect_op(terminal_disconnect_op&&) = default;
|
||||||
terminal_disconnect_op(const terminal_disconnect_op&) = delete;
|
terminal_disconnect_op(const terminal_disconnect_op&) = delete;
|
||||||
|
|
||||||
using executor_type = asio::associated_executor_t<handler_type>;
|
using executor_type = asio::associated_executor_t<handler_type>;
|
||||||
|
@ -33,7 +33,7 @@ public:
|
|||||||
_owner(owner), _handler(std::move(handler))
|
_owner(owner), _handler(std::move(handler))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
resolve_op(resolve_op&&) noexcept = default;
|
resolve_op(resolve_op&&) = default;
|
||||||
resolve_op(const resolve_op&) = delete;
|
resolve_op(const resolve_op&) = delete;
|
||||||
|
|
||||||
using executor_type = asio::associated_executor_t<handler_type>;
|
using executor_type = asio::associated_executor_t<handler_type>;
|
||||||
|
@ -79,7 +79,7 @@ public:
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
publish_send_op(publish_send_op&&) noexcept = default;
|
publish_send_op(publish_send_op&& other) = default;
|
||||||
publish_send_op(const publish_send_op&) = delete;
|
publish_send_op(const publish_send_op&) = delete;
|
||||||
|
|
||||||
using executor_type = asio::associated_executor_t<handler_type>;
|
using executor_type = asio::associated_executor_t<handler_type>;
|
||||||
|
@ -30,7 +30,7 @@ public:
|
|||||||
_handler(std::move(handler))
|
_handler(std::move(handler))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
read_op(read_op&&) noexcept = default;
|
read_op(read_op&&) = default;
|
||||||
read_op(const read_op&) = delete;
|
read_op(const read_op&) = delete;
|
||||||
|
|
||||||
using executor_type = asio::associated_executor_t<handler_type>;
|
using executor_type = asio::associated_executor_t<handler_type>;
|
||||||
|
@ -66,7 +66,7 @@ public:
|
|||||||
_handler(std::forward<Handler>(handler))
|
_handler(std::forward<Handler>(handler))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
reconnect_op(reconnect_op&&) noexcept = default;
|
reconnect_op(reconnect_op&&) = default;
|
||||||
reconnect_op(const reconnect_op&) = delete;
|
reconnect_op(const reconnect_op&) = delete;
|
||||||
|
|
||||||
using executor_type = asio::associated_executor_t<handler_type>;
|
using executor_type = asio::associated_executor_t<handler_type>;
|
||||||
|
@ -56,8 +56,8 @@ public:
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
subscribe_op(subscribe_op&&) noexcept = default;
|
subscribe_op(subscribe_op&&) = default;
|
||||||
subscribe_op(const subscribe_op&) noexcept = delete;
|
subscribe_op(const subscribe_op&) = delete;
|
||||||
|
|
||||||
using executor_type = asio::associated_executor_t<handler_type>;
|
using executor_type = asio::associated_executor_t<handler_type>;
|
||||||
executor_type get_executor() const noexcept {
|
executor_type get_executor() const noexcept {
|
||||||
|
@ -51,8 +51,8 @@ public:
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
unsubscribe_op(unsubscribe_op&&) noexcept = default;
|
unsubscribe_op(unsubscribe_op&&) = default;
|
||||||
unsubscribe_op(const unsubscribe_op&) noexcept = delete;
|
unsubscribe_op(const unsubscribe_op&) = delete;
|
||||||
|
|
||||||
using executor_type = asio::associated_executor_t<handler_type>;
|
using executor_type = asio::associated_executor_t<handler_type>;
|
||||||
executor_type get_executor() const noexcept {
|
executor_type get_executor() const noexcept {
|
||||||
|
@ -22,11 +22,10 @@ class write_op {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
write_op(Owner& owner, Handler&& handler) :
|
write_op(Owner& owner, Handler&& handler) :
|
||||||
_owner(owner),
|
_owner(owner), _handler(std::move(handler))
|
||||||
_handler(std::move(handler))
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
write_op(write_op&&) noexcept = default;
|
write_op(write_op&&) = default;
|
||||||
write_op(const write_op&) = delete;
|
write_op(const write_op&) = delete;
|
||||||
|
|
||||||
using executor_type = asio::associated_executor_t<handler_type>;
|
using executor_type = asio::associated_executor_t<handler_type>;
|
||||||
|
@ -40,7 +40,7 @@ public:
|
|||||||
_args(std::move(args)...)
|
_args(std::move(args)...)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
delayed_op(delayed_op&&) noexcept = default;
|
delayed_op(delayed_op&&) = default;
|
||||||
delayed_op(const delayed_op&) = delete;
|
delayed_op(const delayed_op&) = delete;
|
||||||
|
|
||||||
using executor_type = asio::steady_timer::executor_type;
|
using executor_type = asio::steady_timer::executor_type;
|
||||||
|
@ -118,7 +118,7 @@ public:
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
read_op(read_op&&) noexcept = default;
|
read_op(read_op&&) = default;
|
||||||
read_op(const read_op&) = delete;
|
read_op(const read_op&) = delete;
|
||||||
|
|
||||||
using executor_type = test_stream_impl::executor_type;
|
using executor_type = test_stream_impl::executor_type;
|
||||||
@ -173,7 +173,7 @@ public:
|
|||||||
_handler(std::move(handler))
|
_handler(std::move(handler))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
write_op(write_op&&) noexcept = default;
|
write_op(write_op&&) = default;
|
||||||
write_op(const write_op&) = delete;
|
write_op(const write_op&) = delete;
|
||||||
|
|
||||||
using executor_type = test_stream_impl::executor_type;
|
using executor_type = test_stream_impl::executor_type;
|
||||||
|
Reference in New Issue
Block a user