Module that defines the CObjectVec type and the associated functions.

#include "clingo/lang/expect.h"
#include "clingo/container/CBitVec.h"
#include "clingo/container/CByteVec.h"
#include "clingo/container/CInt64Map.h"
#include "clingo/container/CInt64Set.h"
#include "clingo/container/CInt64Vec.h"
#include "clingo/container/CObjectVec.h"

int main( void )

   CObjectVec* gc = retain_c( new_object_vec_c() );
   cVecInfo const* info = info_of_object_vec_c( gc );

   add_to_object_vec_c( gc, new_bit_vec_c( 64 ) );
   add_to_object_vec_c( gc, new_byte_vec_c() );
   add_to_object_vec_c( gc, new_int64_map_c() );
   add_to_object_vec_c( gc, new_int64_set_c() );
   add_to_object_vec_c( gc, new_int64_vec_c() );

   expect_c_( info->count == 5 );

   release_c( gc );

   return finish_tap_c_();

Types and Definitions



struct CObjectVec;
typedef struct CObjectVec CObjectVec;

Via the macros OBJ_VEC_DEF_C_ and OBJ_VEC_IMPL_C_ declared and implemented struct. The macros declare and implement also the following functions.

/* create */
CObjectVec* make_object_vec_c( int64_t cap );
CObjectVec* new_object_vec_c( void );
/* data */
CObject* const* data_of_object_vec_c( CObjectVec const* vec );
CObject** var_data_of_object_vec_c( CObjectVec* vec );
/* resize */
bool resize_object_vec_c( CObjectVec* vec, int64_t cap );
/* info */
cVecInfo const* info_of_object_vec_c( CObjectVec const* list );
/* use */
bool add_to_object_vec_c( CObjectVec* vec, CObject* val );
bool add_array_to_object_vec_c( CObjectVec* vec, int64_t n, CObject* const* arr );
CObject* get_from_object_vec_c( CObjectVec const* vec, int64_t pos );
bool insert_into_object_vec_c( CObjectVec* vec, int64_t pos, CObject* val );
bool remove_from_object_vec_c( CObjectVec* vec, int64_t pos );
void set_on_object_vec_c( CObjectVec* vec, int64_t pos, CObject* val );