Импортировать библиотеку с одним заголовком C в C++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Импортировать библиотеку с одним заголовком C в C++

Сообщение Anonymous »

Я хочу включить в свой код C++ библиотеку с одним заголовком C. Библиотека заголовков C содержит код, несовместимый с C++. Как этого добиться? :

Код: Выделить всё

extern "C" {
#include "single_header.h"
}

int main() {}

Код: Выделить всё

single_header.h
:

Код: Выделить всё

#include 
void f() {
int *p = malloc(sizeof(int));
free(p);
}
Если я скомпилирую его с помощью g++, я получу ошибку о том, что это недопустимый код C++, поскольку extern "C" касается только изменения функции.

Код: Выделить всё

$ g++ main.cc
In file included from main.cc:2:
single_header.h: In function ‘void f()’:
single_header.h:3:18: error: invalid conversion from ‘void*’ to ‘int*’ [-fpermissive]
3 |   int *p = malloc(sizeof(int));
|            ~~~~~~^~~~~~~~~~~~~
|                  |
|                  void*
Какой шаблон лучше всего подойдет для достижения этой цели?


Подробнее здесь: https://stackoverflow.com/questions/783 ... brary-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»