Hey-hey,

Is it proper to to use static_cast like this:

 

//Library.h - legacy library

typedef ??? Type; //library-defined, we don’t know the actual type

typedef Type* PType; //library-defined pointer type

 

//sets bufSize to # bytes necessary if buf not big enough

LibraryFunction(PType buf, int* bufSize);

 

//MyCode.cpp

int bytesNeeded = 0;

LibraryFunction(0, &bytesNeeded);

scoped_array<Type>(static_cast<PType>(new BYTE[bytesNeeded]));

 

The legacy library tells us storage requirements in BYTEs, but I want to deal with ‘Type’s, not BYTEs.

 

Is there a conceivable reason why this could not be safe, even if it happens to be with the current implementation?

Thanks.

- Sean