       }
 
       this->size = new_size;
-      temp.free(temp_target);
+      temp->free();
     }
 
     /*

    }

    template<typename stream_t>
    move(location_t source, location_t destination)
    {
      cuda::memory::async::copy(this->data(destination),
                                this->data(source),


    CUDA_HOST_DEVICE constexpr bool is_allocated(
      location_t target,
      _int_t size = this->size) noexcept
    {
      // XXX: maybe needs an explicit memory check?
      return ((is_location_set(this->allocated, target)) &&
              (size() == this->size))
