
I certainly wasn't getting at renaming the shmem containers. Although I am not the developer of this library I think there are more important issues such as the ambiguous native function calls. With this code: #include "boost/shmem/containers/map.hpp" #include <boost/shmem/named_shared_object.hpp> #include <atlbase.h> #include <atlapp.h> #include <atlwin.h> #include <atlscrl.h> class PHScroll: public CScrollWindowImpl<PHScroll> { public: DECLARE_WND_CLASS(NULL) BEGIN_MSG_MAP(PHScroll) MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLB) MESSAGE_HANDLER(WM_RBUTTONDOWN, OnRB) CHAIN_MSG_MAP(CScrollWindowImpl<PHScroll>); END_MSG_MAP() void DoPaint(CDCHandle dc); LRESULT OnLB(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/); LRESULT OnRB(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/); void SetSize(SIZE); }; using namespace boost::shmem; int main(int argc, char *argv[ ]) { PHScroll phs; } I get: c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlbase.h(4438) : error C2668: 'GetCurrentThreadId' : ambiguous call to overloaded function c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinBase.h(2502): could be 'DWORD GetCurrentThreadId(void)' c:\boost_1_33_1\boost\shmem\sync\win32\win32_sync_primitives.hpp(359): or 'unsigned long boost::shmem::GetCurrentThreadId(void)' while trying to match the argument list '(void)' c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlbase.h(4434) : while compiling class-template member function 'ATL::CAtlAutoThreadModuleT<T>::~CAtlAutoThreadModuleT(void)' with [ T=ATL::CAtlAutoThreadModule ] c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlbase.h(4513) : see reference to class template instantiation 'ATL::CAtlAutoThreadModuleT<T>' being compiled with [ T=ATL::CAtlAutoThreadModule ] c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlbase.h(4451) : error C2668: 'GetLastError' : ambiguous call to overloaded function c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinBase.h(2688): could be 'DWORD GetLastError(void)' c:\boost_1_33_1\boost\shmem\sync\win32\win32_sync_primitives.hpp(361): or 'unsigned int boost::shmem::GetLastError(void)' while trying to match the argument list '(void)' c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlbase.h(4459) : error C2668: 'CloseHandle' : ambiguous call to overloaded function c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinBase.h(3355): could be 'BOOL CloseHandle(HANDLE)' c:\boost_1_33_1\boost\shmem\sync\win32\win32_sync_primitives.hpp(362): or 'int boost::shmem::CloseHandle(void *)' while trying to match the argument list '(HANDLE)' c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlbase.h(4462) : error C2668: 'CloseHandle' : ambiguous call to overloaded function c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinBase.h(3355): could be 'BOOL CloseHandle(HANDLE)' c:\boost_1_33_1\boost\shmem\sync\win32\win32_sync_primitives.hpp(362): or 'int boost::shmem::CloseHandle(void *)' while trying to match the argument list '(HANDLE)' Thanks