Я не вижу, что вы пытаетесь сделать с показанным кодом.
Кроме того, есть вероятность, что ошибка возникла в коде, который вы не показываете, но вот мои 5p:
Пулы не копируются .Я предполагаю, что в C ++ 03 вы получаете can not access to the private member
, потому что конструктор копирования является приватным.В C ++ 11 вы можете ожидать:
error: use of deleted function ‘boost::pool<>::pool(const boost::pool<>&)’
Вот исправленная версия, которая, вероятно, делает то, что вы хотели:
// Uncomment this to stub out all MT locking
// #define BOOST_NO_MT
#include <boost/pool/pool.hpp>
struct AppClass1
{
int data[10];
void* operator new(size_t sz);
};
#define BOOSTPOOL boost::pool<>
BOOSTPOOL& GetPool()
{
static BOOSTPOOL AppClass1Pool(sizeof(AppClass1));
return AppClass1Pool;
}
void* AppClass1::operator new(size_t sz)
{
BOOSTPOOL& temp = GetPool();
void* p =(void*) temp.malloc();
return p;
}
int main(int argc, const char *argv[])
{
return 0;
}