Есть ли преимущество использования C++/CLI по сравнению со стандартным C++ или C#?

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

4 ответа

Решение

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

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

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

Обоснование дизайна для C++/CLI

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

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

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

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

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

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

Другие вопросы по тегам