当我尝试包含<boost/thread.hpp>
在 C++ Builder 中时,我收到了警告。对于我包含的每个单元,C++ Builder 都会显示以下两行:
thread_heap_alloc.hpp(59): W8128 Can't import a function being defined
thread_heap_alloc.hpp(69): W8128 Can't import a function being defined
已经尝试了一些东西,但没有任何效果。
它编译正确,但是,它让我很紧张。为什么会显示此消息?
这些行是:
#include <boost/config/abi_prefix.hpp>
namespace boost
{
namespace detail
{
inline BOOST_THREAD_DECL void* allocate_raw_heap_memory(unsigned size)
{
void* const eap_memory=detail::win32::HeapAlloc(detail::win32::GetProcessHeap(),0,size);
if(!heap_memory)
{
throw std::bad_alloc();
}
return heap_memory;
}
inline BOOST_THREAD_DECL void free_raw_heap_memory(void* heap_memory)
{
BOOST_VERIFY(detail::win32::HeapFree(detail::win32::GetProcessHeap(),0,heap_memory)!=0);
}
其中 59 在 的{
下方BOOST_THREAD_DECL
,69 也是如此。看起来BOOST_THREAD_DECL
没有正确定义或错误定义,尝试遵循 Boost 代码并不容易。
这是升压 1.39。