Methods ending with out parameters are ambiguous
cppgir generates the following methods:
// gboolean xdp_inhibit_inhibit_call_create_monitor_sync (XdpInhibitInhibit* proxy, const gchar* arg_window, GVariant* arg_options, gchar** out_handle, GCancellable* cancellable, GError ** error);
// gboolean xdp_inhibit_inhibit_call_create_monitor_sync (::XdpInhibitInhibit* proxy, const char* arg_window, ::GVariant* arg_options, char** out_handle, ::GCancellable* cancellable, GError ** error);
GI_INLINE_DECL gi::result<bool> call_create_monitor_sync (const std::string & arg_window, GLib::Variant arg_options, std::string * out_handle, Gio::Cancellable cancellable) noexcept;
GI_INLINE_DECL gi::result<bool> call_create_monitor_sync (const std::string & arg_window, GLib::Variant arg_options, std::string * out_handle = nullptr) noexcept;
GI_INLINE_DECL bool call_create_monitor_sync (const std::string & arg_window, GLib::Variant arg_options, std::string * out_handle, Gio::Cancellable cancellable, GLib::Error * _error) noexcept;
GI_INLINE_DECL bool call_create_monitor_sync (const std::string & arg_window, GLib::Variant arg_options, std::string * out_handle, GLib::Error * _error) noexcept;
GI_INLINE_DECL gi::result<std::tuple<bool, std::string>> call_create_monitor_sync (const std::string & arg_window, GLib::Variant arg_options, Gio::Cancellable cancellable) noexcept;
GI_INLINE_DECL gi::result<std::tuple<bool, std::string>> call_create_monitor_sync (const std::string & arg_window, GLib::Variant arg_options) noexcept;
GI_INLINE_DECL std::tuple<bool, std::string> call_create_monitor_sync (const std::string & arg_window, GLib::Variant arg_options, Gio::Cancellable cancellable, GLib::Error * _error) noexcept;
GI_INLINE_DECL std::tuple<bool, std::string> call_create_monitor_sync (const std::string & arg_window, GLib::Variant arg_options, GLib::Error * _error) noexcept;
The GI_INLINE_DECL gi::result<bool> call_create_monitor_sync (const std::string & arg_window, GLib::Variant arg_options, std::string * out_handle = nullptr) noexcept; and GI_INLINE_DECL gi::result<std::tuple<bool, std::string>> call_create_monitor_sync (const std::string & arg_window, GLib::Variant arg_options) noexcept; ones are ambiguous if not using the result (and apparently if using auto).
Although the best for me would be to call the async one to not to wait for result, but that's not possible due to #27 (closed).
Edited by Ilya Fedin