Why do I need std::get_temporary_buffer?

前端 未结 6 639
眼角桃花
眼角桃花 2020-12-12 20:28

For what purpose I should use std::get_temporary_buffer? Standard says the following:

Obtains a pointer to storage sufficient to store up to n adjacen

6条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-12 20:49

    ptrdiff_t            request = 12
    pair p       = get_temporary_buffer(request);
    int*                 base    = p.first;
    ptrdiff_t            respond = p.sencond;
    assert( is_valid( base, base + respond ) );
    

    respond may be less than request.

    size_t require = 12;
    int*   base    = static_cast( ::operator new( require*sizeof(int) ) );
    assert( is_valid( base, base + require ) );
    

    the actual size of base must greater or equal to require.

提交回复
热议问题