You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by "Yan Xu (JIRA)" <ji...@apache.org> on 2014/05/28 23:07:03 UTC

[jira] [Updated] (MESOS-1427) Build error: clang++ not respecting 'friend' keyword?

     [ https://issues.apache.org/jira/browse/MESOS-1427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yan Xu updated MESOS-1427:
--------------------------

    Affects Version/s: 0.19.0

> Build error: clang++ not respecting 'friend' keyword?
> -----------------------------------------------------
>
>                 Key: MESOS-1427
>                 URL: https://issues.apache.org/jira/browse/MESOS-1427
>             Project: Mesos
>          Issue Type: Bug
>    Affects Versions: 0.19.0
>            Reporter: Yan Xu
>
> 'State' is a [friend|https://github.com/apache/mesos/blob/a3170e0a9f85ee8230b7323ea97bf2d15fa2539f/src/state/protobuf.hpp#L60] of 'Variable' but the following error nonetheless.
> {noformat}
> libtool: compile:  clang++ -DPACKAGE_NAME=\"mesos\" -DPACKAGE_TARNAME=\"mesos\" -DPACKAGE_VERSION=\"0.19.0\" "-DPACKAGE_STRING=\"mesos 0.19.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesos\" -DVERSION=\"0.19.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_PTHREAD=1 -DMESOS_HAS_JAVA=1 -DHAVE_PYTHON=\"2.7\" -DMESOS_HAS_PYTHON=1 -DHAVE_LIBZ=1 -DHAVE_LIBCURL=1 -DHAVE_LIBSASL2=1 -I. -Wall -Werror -DLIBDIR=\"/usr/local/lib\" -DPKGLIBEXECDIR=\"/usr/local/libexec/mesos\" -DPKGDATADIR=\"/usr/local/share/mesos\" -I../include -I../3rdparty/libprocess/include -I../3rdparty/libprocess/3rdparty/stout/include -I../include -I../3rdparty/libprocess/3rdparty/boost-1.53.0 -I../3rdparty/libprocess/3rdparty/protobuf-2.5.0/src -I../3rdparty/libprocess/3rdparty/picojson-4f93734 -I../3rdparty/libprocess/3rdparty/glog-0.3.3/src -I../3rdparty/leveldb/include -I../3rdparty/zookeeper-3.4.5/src/c/include -I../3rdparty/zookeeper-3.4.5/src/c/generated -pthread -g -g2 -O2 -std=c++11 -MT master/libmesos_no_3rdparty_la-registrar.lo -MD -MP -MF master/.deps/libmesos_no_3rdparty_la-registrar.Tpo -c master/registrar.cpp  -fPIC -DPIC -o master/.libs/libmesos_no_3rdparty_la-registrar.o
> In file included from master/registrar.cpp:43:
> In file included from ./master/registrar.hpp:32:
> ./state/protobuf.hpp:124:10: error: calling a private constructor of class 'mesos::internal::state::protobuf::Variable<mesos::internal::Registry>'
>   return Variable<T>(variable, t.get());
>          ^
> ./state/protobuf.hpp:111:41: note: in instantiation of function template specialization 'mesos::internal::state::protobuf::State::_fetch<mesos::internal::Registry>' requested here
>     .then(lambda::bind(&State::template _fetch<T>, lambda::_1));
>                                         ^
> master/registrar.cpp:315:37: note: in instantiation of function template specialization 'mesos::internal::state::protobuf::State::fetch<mesos::internal::Registry>' requested here
>     metrics.state_fetch.time(state->fetch<Registry>("registry"))
>                                     ^
> ./state/protobuf.hpp:62:3: note: declared private here
>   Variable(const state::Variable& _variable, const T& _t)
>   ^
> ./state/protobuf.hpp:132:57: error: 't' is a private member of 'mesos::internal::state::protobuf::Variable<mesos::internal::Registry>'
>   Try<std::string> value = messages::serialize(variable.t);
>                                                         ^
> master/registrar.cpp:441:35: note: in instantiation of function template specialization 'mesos::internal::state::protobuf::State::store<mesos::internal::Registry>' requested here
>   metrics.state_store.time(state->store(variable.get().mutate(registry)))
>                                   ^
> ./state/protobuf.hpp:67:5: note: declared private here
>   T t;
>     ^
> ./state/protobuf.hpp:138:39: error: 'variable' is a private member of 'mesos::internal::state::protobuf::Variable<mesos::internal::Registry>'
>   return state::State::store(variable.variable.mutate(value.get()))
>                                       ^
> ./state/protobuf.hpp:66:19: note: declared private here
>   state::Variable variable; // Not const to keep Variable assignable.
>                   ^
> ./state/protobuf.hpp:139:61: error: 't' is a private member of 'mesos::internal::state::protobuf::Variable<mesos::internal::Registry>'
>     .then(lambda::bind(&State::template _store<T>, variable.t, lambda::_1));
>                                                             ^
> ./state/protobuf.hpp:67:5: note: declared private here
>   T t;
>     ^
> ./state/protobuf.hpp:149:17: error: calling a private constructor of class 'mesos::internal::state::protobuf::Variable<mesos::internal::Registry>'
>     return Some(Variable<T>(variable.get(), t));
>                 ^
> ./state/protobuf.hpp:139:41: note: in instantiation of function template specialization 'mesos::internal::state::protobuf::State::_store<mesos::internal::Registry>' requested here
>     .then(lambda::bind(&State::template _store<T>, variable.t, lambda::_1));
>                                         ^
> master/registrar.cpp:441:35: note: in instantiation of function template specialization 'mesos::internal::state::protobuf::State::store<mesos::internal::Registry>' requested here
>   metrics.state_store.time(state->store(variable.get().mutate(registry)))
>                                   ^
> ./state/protobuf.hpp:62:3: note: declared private here
>   Variable(const state::Variable& _variable, const T& _t)
>   ^
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)