Why do we have __valarray_get_memory?
Jonathan Wakely
jwakely@redhat.com
Tue Dec 5 16:18:00 GMT 2017
Does the first function here really serve any purpose?
// We get memory by the old fashion way
inline void*
__valarray_get_memory(size_t __n)
{ return operator new(__n); }
template<typename _Tp>
inline _Tp*__restrict__
__valarray_get_storage(size_t __n)
{
return static_cast<_Tp*__restrict__>
(std::__valarray_get_memory(__n * sizeof(_Tp)));
}
// Return memory to the system
inline void
__valarray_release_memory(void* __p)
{ operator delete(__p); }
Is there any benefit to doing that, instead of just making a direct
call to operator new?
template<typename _Tp>
inline _Tp*
__valarray_get_storage(size_t __n)
{ return static_cast<_Tp*>(operator new(__n * sizeof(_Tp))); }
As I said in another thread, I don't think the __restrict__ does
anything there, but maybe it should use __attribute__((malloc))
instead.
More information about the Libstdc++
mailing list