You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Benno Evers (JIRA)" <ji...@apache.org> on 2018/11/15 11:58:00 UTC

[jira] [Created] (MESOS-9390) Warnings in AdaptedOperation prevent clang build

Benno Evers created MESOS-9390:
----------------------------------

             Summary: Warnings in AdaptedOperation prevent clang build
                 Key: MESOS-9390
                 URL: https://issues.apache.org/jira/browse/MESOS-9390
             Project: Mesos
          Issue Type: Bug
         Environment: Fedora 28
            Reporter: Benno Evers


Trying to build the latest mesos master using clang-8 as a compiler, the following warnings can be observed:
{noformat}
../../src/resource_provider/registrar.cpp:387:5: error: explicitly defaulted move constructor is implicitly deleted [-Werror,-Wdefaulted-function-deleted]
    AdaptedOperation(AdaptedOperation&&) = default;
    ^
../../src/resource_provider/registrar.cpp:374:28: note: move constructor of 'AdaptedOperation' is implicitly deleted because base class 'master::RegistryOperation' has a deleted move constructor
  class AdaptedOperation : public master::RegistryOperation
                           ^
../../src/master/registrar.hpp:45:27: note: copy constructor of 'RegistryOperation' is implicitly deleted because base class 'process::Promise<bool>' has an inaccessible copy constructor
class RegistryOperation : public process::Promise<bool>
                          ^
../../src/resource_provider/registrar.cpp:389:23: error: explicitly defaulted move assignment operator is implicitly deleted [-Werror,-Wdefaulted-function-deleted]
    AdaptedOperation& operator=(AdaptedOperation&&) = default;
                      ^
../../src/resource_provider/registrar.cpp:374:28: note: move assignment operator of 'AdaptedOperation' is implicitly deleted because base class 'master::RegistryOperation' has a deleted move assignment operator
  class AdaptedOperation : public master::RegistryOperation
                           ^
../../src/master/registrar.hpp:45:27: note: copy assignment operator of 'RegistryOperation' is implicitly deleted because base class 'process::Promise<bool>' has an inaccessible copy assignment operator
class RegistryOperation : public process::Promise<bool>
                          ^
2 errors generated.
{noformat}

I tried looking into this, but I can't make sense of the warnings, the required move constructor and move assignment operator seem to be correctly declared in `Promise`:

{noformat}
// 3rdparty/libprocess/include/process/future.hpp
template <typename T>
class Promise
{
public:
  Promise();
  virtual ~Promise();

  explicit Promise(const T& t);

  Promise(Promise&& that) = default;
  Promise& operator=(Promise&&) = default;
[...]
};
{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)