Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-864

Eliminate the use of internal stdlibc++ templates for achieving libc++ compatiblity

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 0.14.2
    • Fix Version/s: 0.17.0
    • Component/s: build, libprocess
    • Environment:

      Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn), libc++ (_LIBCPP_VERSION) 1101

      Description

      When attempting to build libprocess against libc++ most pitfalls are simply namespace related (::tr1) but some are harder to come by.

      One example is the use of std::tr1::_Bind within deferred.hpp.
      [3rdparty/libprocess/include/process/deferred.hpp]

      For the specific example, a comment was given for reasoning the design choice:
      <pre>The result of invoking the 'defer' routines is actually an internal type, effectively just a wrapper around the result of invoking 'std::tr1::bind'. However, we want the result of bind to be castable to a 'Deferred' but we don't want anyone to be able to create a 'Deferred' so we use a level-of-indirection via this type.</pre>

      How could we solve this without deriving directly from _Bind?

        Attachments

          Activity

            People

            • Assignee:
              benjaminhindman Benjamin Hindman
              Reporter:
              tillt Till Toenshoff
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: