boostorg / thread

Boost.org thread module
http://boost.org/libs/thread
203 stars 162 forks source link

Failures on msvc-12.0 #143

Closed pdimov closed 7 years ago

pdimov commented 7 years ago

Some tests are failing on msvc-12.0, see

https://ci.appveyor.com/project/boostorg/boost/build/1.0.3620

...failed compile-c-c++ bin.v2\libs\thread\test\queue_views__single_thread_p.test\msvc-12.0\debug\threading-multi\sync\mutual_exclusion\queue_views\single_thread_pass.obj...

viboes commented 7 years ago

I don't know where the problem is. I've contacted Ion Gaztañaga in case he is able to see what is wrong.

viboes commented 7 years ago

I believe that I have an hint


        C:\projects\boost\boost/thread/csbl/devector.hpp(31) : see reference to function template instantiation 'void boost::container::vector<T,boost::container::new_allocator<T>>::push_back(const T &)' being compiled
        with
        [
            T=non_copyable
        ]

I suspect that push_back(const T &) should be defined using SFINAE :(

viboes commented 7 years ago

Wondering why do we see const T& when the code is

      template <class U>
      void priv_push_back(BOOST_FWD_REF(U) x)
      { data_.push_back(boost::forward<U>(x)); }
viboes commented 7 years ago

Ion said me that he doesn't understand why the compiler is reporting this error.

I've tried to setup an appveyor CI, but I don't reach to get the results. Once I will get the results I could create a branch trying to expand the Boost.Move macro and try to change some things in order to have a better idea.

Any help here is welcome.

For the time been I could inhibit these test while compiling on this compiler version. A PR is welcome if this behavior is desired.

viboes commented 7 years ago

I have masked the code that makes the compilation fail.

https://github.com/boostorg/thread/pull/149

See the results here

https://ci.appveyor.com/project/viboes/thread/build/1.0.17-develop

Any comment on the PR is welcome.