Есть ли какие-либо проблемы при использовании чисто C (не обернутых классом) функций в приложении C ++? - PullRequest
2 голосов
/ 06 ноября 2010

Я планирую использовать чистую MPI-библиотеку C в приложении C ++, я не хочу добавлять ненужный раздув, например, запустив. Повысьте уровень MPI, который охватывает все вещи в MPI::<func> классах.

Есть ли что-то, о чем я должен знать?

Ответы [ 2 ]

8 голосов
/ 06 ноября 2010

Вы должны обернуть все ваши включения для C-заголовков в блок extern "C", чтобы избежать проблем с искажением имен в компиляторах C ++.

extern "C" {
    // include C-headers
}

Подробнее здесь .

2 голосов
/ 06 ноября 2010

Не совсем, так как большинство библиотек готовы для включения в компилятор C ++ (если нет, вы можете сделать, как советует Space Cowboy выше). Тем не менее, я бы посоветовал вам (если вы не возражаете) пересмотреть повышение MPI. Это не добавляет ненужного раздувания и дает вам более полный интерфейс к MPI в объектно-ориентированной среде. Он добавляет больше семантики к типам, передаваемым через MPI, и даже дает вам больше «функциональных» операторов, таких как использование функторов для операций вычисления (например, reduce) и т. Д. Количество добавляемого кода незначительно, и большинство время выполнения не увеличивается, поскольку абстракции реализуются через метапрограммирование шаблона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...