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:
Korina Šimičević
2024-05-09 11:54:29 +02:00
parent 73ec4431ff
commit 794f48e915
15 changed files with 34 additions and 27 deletions

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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>;

View File

@ -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>;

View File

@ -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>;

View File

@ -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>;

View File

@ -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>;

View File

@ -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>;

View File

@ -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>;

View File

@ -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 {

View File

@ -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 {

View File

@ -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>;

View File

@ -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;

View File

@ -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;