[Boost-bugs] [Boost C++ Libraries] #7696: Conflict mutex.hpp together with move.hpp

Subject: [Boost-bugs] [Boost C++ Libraries] #7696: Conflict mutex.hpp together with move.hpp
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-11-15 13:01:33


#7696: Conflict mutex.hpp together with move.hpp
---------------------------------+------------------------------------------
 Reporter: orlov@… | Owner: anthonyw
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: thread
  Version: Boost 1.52.0 | Severity: Problem
 Keywords: |
---------------------------------+------------------------------------------
 When trying to compile the following code:

 {{{
 #ifndef FRAME_DATA_QUEUE_H
 #define FRAME_DATA_QUEUE_H

 #include <queue>
 //#include <boost/thread/locks.hpp>
 #include <boost/thread/mutex.hpp>

 //#include <IPStream/Decoder/FrameData.h>

 typedef int PFrameData;

 class CFrameDataQueue
 {
 public:
         void PushData(PFrameData pData);
         PFrameData PopData();
         bool IsQueueEmpty();
         int GetSize();
         void Lock();
         void Unlock();
         void Clean();

 private:
         typedef std::queue<PFrameData> TFrameDataQueue;

         TFrameDataQueue
 m_FrameDataQueue;
         boost::mutex
 m_FrameDataQueueMutex;
         //boost::unique_lock<boost::mutex> m_Lock;
 };

 typedef boost::shared_ptr<CFrameDataQueue> PFrameDataQueue;

 #endif // FRAME_DATA_QUEUE_H
 }}}

 I got the error (MS Visual Studio 2010 SP1):

 {{{
 1>------ Build started: Project: LibIPStream, Configuration: Debug x64
 ------
 1>Build started 15.11.2012 16:45:47.
 1>InitializeBuildStatus:
 1> Touching "x64\Debug\LibIPStream.unsuccessfulbuild".
 1>ClCompile:
 1> FrameDataServerMediaSubsession.cpp
 1> FrameDataSignalSource.cpp
 1>D:\SDK_64\boost_1_52_0\boost/move/move.hpp(142): error C2062: type
 'bool' unexpected
 1> D:\SDK_64\boost_1_52_0\boost/move/move.hpp(143) : see
 reference to class template instantiation
 'boost::move_detail::not_<__formal>' being compiled
 1>D:\SDK_64\boost_1_52_0\boost/move/move.hpp(143): error C2143: syntax
 error : missing ';' before '{'
 1>D:\SDK_64\boost_1_52_0\boost/move/move.hpp(143): fatal error C1004:
 unexpected end-of-file found
 1>D:\SDK_64\boost_1_52_0\boost/move/move.hpp(142): error C2062: type
 'bool' unexpected
 1> D:\SDK_64\boost_1_52_0\boost/move/move.hpp(143) : see
 reference to class template instantiation
 'boost::move_detail::not_<__formal>' being compiled
 1>D:\SDK_64\boost_1_52_0\boost/move/move.hpp(143): error C2143: syntax
 error : missing ';' before '{'
 1>D:\SDK_64\boost_1_52_0\boost/move/move.hpp(143): fatal error C1004:
 unexpected end-of-file found
 1>
 1>Build FAILED.
 1>
 1>Time Elapsed 00:00:02.60
 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped
 ==========
 }}}

 Commenting struct "not_" from move.hpp does the trick:

 {{{
    //template <typename Boolean>
    // struct not_
    // : public integral_constant<bool, !Boolean::value>
    //{};
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/7696>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:11 UTC