Используя чистый компилятор C++ по сравнению с Visual C++

Я думаю, что Вы найдете, что Вам не нужен он на языках позднего связывания как Objective C, Ruby, Lisp и так далее. Как откровение Jamis, что он спускался по чрезмерно сложному контуру, когда он пытался создать иглу, платформу DI для Ruby - Сеть:: SSH пересмотрел .

Вот некоторые ссылки, которые, надо надеяться, дадут Вам некоторый пример кода, чтобы сделать подобные вещи в Objective C. С категориями можно по существу изменить поведение любого класса во времени выполнения. См. Подсказки Разработчика Mac †“Objective C: Категории и Какао документы API о категориях . По существу Вам не нужно некоторое центральное место для просьбы "вещь, которая делает x", который настраивается, потому что можно просто инстанцировать TheThingThatDoesX непосредственно и если что-то еще должно измениться/сцепить в то поведение, это может использовать категории.

6
задан darthnosaj 16 October 2009 в 00:56
поделиться

7 ответов

Компилятор Visual C ++ компилирует код C ++ в отдельные EXE-файлы, которые не имеют ничего общего с .NET framework.

Единственный способ получить «багаж .NET» - это скомпилировать C ++ как «управляемый».

Если вы создаете новый проект (Файл | Новый | Новый проект) Затем выберите «Win32» из подменю Visual C ++ в типах проектов и выберите «Консольное приложение Win32». Visual studio создаст простой проект с парой исходных файлов. который скомпилируется в небольшой исполняемый файл.

В большинстве случаев Visual C ++ очень похож на другие компиляторы. Избегайте #pragmas, библиотеки microsoft (MFC, ATL), и все будет в порядке.

Редактировать (спасибо Cheeso) - Документация о том, где Visual C ++ отличается от стандарта .

В общем, я бы посоветовал использовать библиотеки boost для потоков и сетей, потому что они работают на многих платформах (например, linux). Кроме того, если ваш код может компилироваться в GCC и Visual Studio, значит, вы хорошо справляетесь, сохраняя его переносимость.

20
ответ дан 8 December 2019 в 02:26
поделиться

Если вы создаете новое решение, вам следует выбрать новый проект Win32 или консольное приложение Win32, и отметьте опцию «Пустой проект». Затем вы можете добавить файл main.cpp и добавить свой стандартный код C ++.

3
ответ дан 8 December 2019 в 02:26
поделиться

Если вам нравится Visual Studio, используйте ее для изучения C ++ - я не использовал самую последнюю версию, но даже предыдущая была в значительной степени совместима со стандартами, с точки зрения C ++, и я предполагаю, что последняя могла только стать лучше. У вас может быть много разных проектов в Visual Studio, в том числе «консольные приложения», которые являются «обычным ванильным» типом, который вы можете создать на любой платформе, а также многие другие виды, например, приложения для Windows, использующие старый добрый win32 api. , созданные с помощью MFC или других фреймворков старше .NET, .NET с использованием «управляемого кода» и т. д.

Просто убедитесь, что вы всегда работаете в проекте «консольное приложение», и вы

3
ответ дан 8 December 2019 в 02:26
поделиться

Если вы ограничиваете себя написанием кода, совместимого с ANSI C ++, то то, что вы пишете в VS, будет работать в других компиляторах, пока вам не придется взаимодействовать с графическим интерфейсом или вводом-выводом. Затем вам нужно убедиться, что вы используете что-то переносимое, например OpenGL, а не DirectX.

Для настройки вашего проекта могут быть полезны следующие шаги: http://bytes.com/topic/net/answers/447572-strict-ansi-c

2
ответ дан 8 December 2019 в 02:26
поделиться

После создания стандартного проекта Win32 вы можете немного увеличить соответствие. На листе свойств проекта есть категория C / C ++ с записью Language. Здесь перечислены несколько случаев, когда VC ++ может отличаться от стандарта. Здесь вам нужно отключить языковые расширения и включить «wchar_t как встроенный тип», «соответствие цикла» и «поддержку RTTI».

1
ответ дан 8 December 2019 в 02:26
поделиться

Microsoft Visual Studio 2005 поставляется с очень хорошим компилятором чистого C ++, совместимым со стандартом C ++ 98. Если вас интересует чистый C ++, не забудьте отключить языковые расширения в настройках проекта, и все готово. Никто не будет заставлять вас использовать .NET framework, MFC или что-то подобное. Просто чистый базовый язык C ++ и стандартная библиотека C ++.

Конечно, как и любой другой компилятор, он имеет проблемы с несоответствием, но в целом он опять же на удивление хорош. Более старые версии их компилятора (особенно MS VS 6.0) страдали от множества проблем несоответствия и не могли даже скомпилировать свои собственные файлы заголовков с отключенными языковыми расширениями. В версии 2005 года они исправили множество этих проблем.

2
ответ дан 8 December 2019 в 02:26
поделиться

Самые последние версии VC ++ стали значительно более совместимыми со стандартом C ++, поэтому писать "чистый" C ++ с помощью Visual Studio не составляет особого труда, предполагая, что вы не используете Windows. API, COM + и ATL. Фактически, документация по Visual Studio очень обширна, с подробностями о стандартных библиотеках и STL, поэтому она может помочь вам многому научиться. Он не может научить вас всему, но, безусловно, загружен огромным количеством информации, которая переносима для любого компилятора и очень легко доступна внутри IDE.

6
ответ дан 8 December 2019 в 02:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: