gcc を使用してコンパイルすると正常に動作する関数がありますが、g++ でコンパイルすると、次のエラーが発生します。
bon_io.cpp:関数 'lruc_item* lruc_pop_or_create_item(lruc*)': bon_io.cpp:4751: エラー: 'void*' から 'lruc_item*' への無効な変換</p>
コード:
typedef struct {
void *value;
void *key;
uint32_t value_length;
uint32_t key_length;
uint64_t access_count;
void *next;
} lruc_item;
lruc_item* lruc_pop_or_create_item(lruc *cache1)
{
lruc_item *item = NULL;
if(cache1->free_items) {
item = cache1->free_items;
cache1->free_items = item->next; [LINE 4751]
} else {
item = (lruc_item *) calloc(sizeof(lruc_item), 1);
}
return item;
}
この関数を C++ コードで使用しようとしています。そのため、g++ でコンパイルする必要があります。gcc を使用してコンパイルしても、g++ ではコンパイルしないと正常に動作します。
g++ でこれを機能させる方法を教えてください。
ありがとう