Есть ли преимущество использования C++/CLI по сравнению со стандартным C++ или C#?
Я не вижу никаких реальных преимуществ, кроме того, что у вас есть синтаксис C++, а вместе с ним такие вещи, как указатели и деструкторы.
4 ответа
Если вы говорите о том, почему вы используете C++/CLI вместо C#, я думаю, что основными причинами этого являются:
- это может быть более естественным для разработчиков C++ (хотя я думаю, что это, вероятно, не так)
- 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++.