Program Listing for File dynstack_alloc.hpp

Return to documentation for file (/tmp/ws/src/proxsuite/include/proxsuite/linalg/veg/util/dynstack_alloc.hpp)

#ifndef VEG_DYNSTACK_ALLOC_HPP_YYWN4MATS
#define VEG_DYNSTACK_ALLOC_HPP_YYWN4MATS

#include "proxsuite/linalg/veg/vec.hpp"
#include "proxsuite/linalg/veg/memory/dynamic_stack.hpp"

#define __VEG_IMPL_MAKE_STACK(vec, stack, ...)                                 \
  VEG_NOM_SEMICOLON;                                                           \
  ::proxsuite::linalg::veg::Vec<unsigned char> vec;                            \
  vec.resize_for_overwrite((__VA_ARGS__).alloc_req());                         \
  ::proxsuite::linalg::veg::dynstack::DynStackMut stack{                       \
    ::proxsuite::linalg::veg::tags::from_slice_mut, vec.as_mut()               \
  };                                                                           \
  VEG_NOM_SEMICOLON

#define VEG_MAKE_STACK(stack, ...)                                             \
  __VEG_IMPL_MAKE_STACK(VEG_ID(stack_storage), stack, __VA_ARGS__)

#endif /* end of include guard VEG_DYNSTACK_ALLOC_HPP_YYWN4MATS */