Есть ли преимущество использования C ++ / CLI по сравнению со стандартным C ++ или C #? - PullRequest
5 голосов
/ 18 ноября 2008

Я не вижу никаких реальных преимуществ, кроме того, что у вас есть синтаксис C ++, а вместе с ним такие вещи, как указатели и деструкторы.

Ответы [ 4 ]

13 голосов
/ 18 ноября 2008

Если вы говорите о том, почему вы используете C ++ / CLI вместо C #, я думаю, что основными причинами этого являются:

  1. это может быть более естественным для разработчиков C ++ (хотя я думаю, что это, вероятно, не так)
  2. C ++ / CLI имеет очень хорошие возможности для соединения собственной и управляемой сред (с использованием технологии «IJW» - это просто работает)

Я думаю, что Херб Саттер, вероятно, дает лучший обзор:

Обоснование конструкции для C ++ / CLI

Если вы хотите знать, почему вы можете использовать нативный C ++ вместо C # /. NET, это сводится к тому, почему вам нужна управляемая среда (безопасность, более простая разработка), а не нативный код (абсолютный контроль, возможно, преимущества в скорости). , Есть аргументы для каждого, и ответ на самом деле зависит от того, что вы хотите развивать и каким может быть ваш рынок.

6 голосов
/ 18 ноября 2008

Я думаю, что вы ссылаетесь на C ++ / CLI и сравниваете его с C #. C ++ / CLI не является «ароматом» C ++. Это совершенно новый язык с совершенно другими стандартными библиотеками и совершенно другими соглашениями.

На работе мы находим, что C ++ / CLI ценен как связующий язык между C ++ и .NET, но мы не используем его ни для чего, кроме клея интерфейса - C # имеет огромные преимущества перед C ++ во всех других приложениях.

Если вы имеете в виду расширения MS C ++, подобные описанным Адамом, то нет причин не использовать их, если они облегчают вашу работу.

1 голос
/ 26 января 2011

действительно хорошая причина для использования C ++ \ CLI - это взаимодействие языка DotNet с собственным C ++, например, многие компании сначала переводят свой графический интерфейс на .Net и предоставляют некоторую логику в C ++, а C ++ \ CLI - хороший мост для связи между Два техно, вы также можете использовать COM-компоненты для этого, но по многим причинам это не лучший выбор.

0 голосов
/ 18 ноября 2008

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

...