Есть ли язык высокого уровня, который не поддерживает использование библиотек C ++? - PullRequest
1 голос
/ 21 апреля 2010

Есть ли язык высокого уровня, который не поддерживает использование библиотек C ++?

Ответы [ 3 ]

7 голосов
/ 21 апреля 2010

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

  • если библиотека OO, вам нужно иметь возможность создавать объект C ++ в вызывающемязык - это не просто.

  • Реализации C ++ используют технику, известную как "манипулирование именами", чтобы обеспечить безопасное соединение типов.К сожалению, не существует стандарта для искажения имен, поэтому код C ++ не может быть легко вызван между различными реализациями C ++.

Поэтому ответ на ваш вопрос состоит в том, что у большинства HLL будут проблемы с вызовом C ++код.У них также могут быть проблемы с вызовом любого другого языка, разумеется - на самом деле нет стандартизированных бинарных интерфейсов между языками, кроме специальных, определяемых платформой.

2 голосов
/ 21 апреля 2010

Я не могу вспомнить любой язык, который может напрямую использовать библиотеки C ++. Даже заставить C ++ сделать это может быть сложно (если библиотека была скомпилирована с другим компилятором, чем вы используете)

Конечно, если вы пишете какую-то оболочку (или оболочку для конкретной библиотеки, или какую-то библиотеку привязок, которая позволяет вам предоставлять определенные типы), тогда любой язык может использовать библиотеки C ++ , Но напрямую, как есть, без лишней работы? Я не думаю, что какой-либо язык, кроме C ++, может это сделать.

1 голос
/ 21 апреля 2010

Это немного против ответа, но многие популярные языки высокого уровня могут иметь привязки к коду библиотеки C ++, созданные для них с помощью swig (http://swig.org/).

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