Одна вещь, о которой я еще не упоминал в ответах (вероятно, потому, что это скорее недостаток, но это актуальное соображение), - это то, что C ++ / CLI имеет тенденцию получать лечение второго класса.Microsoft использовала , чтобы выдвинуть его в качестве замены для C ++.они хотели, чтобы нативные разработчики переключились на .NET, и способ сделать это - написать C ++ / CLI вместо C ++.
Теперь они отказались от этого, и C ++ / CLI отводится на рольязык взаимодействия.Microsoft рекомендует использовать его, когда вам нужно смешать собственный код C ++ и .NET, вы можете использовать C ++ / CLI в качестве «моста» между ними, в то время как C ++ снова является первоклассным языком.
C ++/ CLI также отстает в определенных отношениях:
- В Visual Studio 2010 Intellisense больше не работал для C ++ / CLI.В какой-то момент он будет снова включен, но сейчас его уже нет.
- VS2010 добавляет поддержку частей C ++ 0x, хотя, насколько я знаю, пока не все из них работает с C ++ / CLI,Опять же, предполагается, что Microsoft поддерживает синхронизацию двух языков, но могут быть задержки при добавлении новых функций в язык C ++, прежде чем они станут доступны в C ++ / CLI.
Итакесли вы хотите писать код .NET, используйте «настоящий» язык .NET, такой как C #.Если вы хотите написать C ++, используйте «настоящий» нативный C ++.И если вы хотите смешать два, используйте C ++ / CLI для написания кода взаимодействия.