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)

Reply via email to