[
https://issues.apache.org/jira/browse/MESOS-2991?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14615527#comment-14615527
]
Michael Park commented on MESOS-2991:
-------------------------------------
The following is a minimal example that fails only on the following version of
{{g++}} on OS X.
{noformat}
$ g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr
--with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.4.0
Thread model: posix
{noformat}
{code}
void F() {}
template <typename T>
class Option {
public:
Option(const T &) {}
Option(T &&) {}
template <typename U>
Option(const U &) {}
};
class Fork {
public:
Fork(const Option<void (*)(void)>&) {}
};
int main() {
Fork fork(F);
}
{code}
The above example compiles cleanly with the updated {{g++}} on OS X:
{noformat}
$ g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr
--with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.4.0
Thread model: posix
{noformat}
As well as {{clang\+\+-3.5}} and {{clang\+\+-3.6}}.
> Compilation Error on Mac OS 10.10.4 with clang 3.5.0
> ----------------------------------------------------
>
> Key: MESOS-2991
> URL: https://issues.apache.org/jira/browse/MESOS-2991
> Project: Mesos
> Issue Type: Bug
> Components: stout, test
> Affects Versions: 0.23.0
> Reporter: Alexander Rukletsov
> Labels: mesosphere
>
> Compiling 0.23.0 (rc1) gives me compilation errors on Mac with clang 3.5. It
> looks like the issue was introduced in
> a5640ad813e6256b548fca068f04fd9fa3a03eda, https://reviews.apache.org/r/32838.
> In contrast to the commit message, compiling the rc with gcc4.4 on CentOS
> worked fine for me.
> According to 0.23 release notes and MESOS-2604, we support clang 3.5.
> {code}
> ../../../../../3rdparty/libprocess/3rdparty/stout/tests/os_tests.cpp:543:25:
> error: conversion from 'void ()' to 'const Option<void (*)()>' is ambiguous
> Fork(dosetsid, // Great-great-granchild.
> ^~~~~~~~
> ../../../../../3rdparty/libprocess/3rdparty/stout/include/stout/option.hpp:40:3:
> note: candidate constructor
> Option(const T& _t) : state(SOME), t(_t) {}
> ^
> ../../../../../3rdparty/libprocess/3rdparty/stout/include/stout/option.hpp:42:3:
> note: candidate constructor
> Option(T&& _t) : state(SOME), t(std::move(_t)) {}
> ^
> ../../../../../3rdparty/libprocess/3rdparty/stout/include/stout/option.hpp:45:3:
> note: candidate constructor [with U = void ()]
> Option(const U& u) : state(SOME), t(u) {}
> ^
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)