Есть ли среда С++, которая хорошо обрабатывает шаблоны?

Всякая IDE, с которой я попыталась, не может обеспечить выполнение кода, когда используется связанное с шаблоном. Например,

boost::shared_ptr<Object> ptr;
ptr->[cursor is here]

Есть ли среда IDE, которая может обеспечить завершение кода в этом случае?

Ответ 1

На самом деле это довольно простой пример использования шаблона, Qt Creator может обрабатывать этот легко и сложный код шаблона.

Ответ 2

Visual Studio с Visual Assist X обрабатывает этот случай, но все еще не выполняет более сложный код.

Ответ 3

Я всегда использовал Eclipse C/С++ IDE. Он также поддерживает завершение кода:)

Ответ 4

G'day,

В стороне, я очень рекомендую Scott Meyers отлично "" Эффективная версия STL".

Пункт 49 "Узнайте, как расшифровать диагностику компилятора, связанной с STL", стоит только цена входа! Информация в нем также применима к диагностике сложных шаблонов, связанных с шаблоном, за пределами STL, например. для Boost.

Удачи.

BTW +1 для интересного вопроса.

веселит,

Ответ 5

Eclipse + плагин CDT будет обрабатывать это, а также другие упомянутые инструменты

Ответ 6

Visual Studio 2010 значительно улучшилась в этой области. Существует открытая бета-версия, вы должны проверить ее.

Ответ 7

Это работает в Eclipse CDT, но вам, возможно, придется явно установить пути включения в Project- > Properties- > C/С++ General- > Paths and Symbols. Под моим env. Мне пришлось выкапывать и явно добавлять include\С++\4.2.1 и включать\С++\4.2.1\m68k-elf. Просто наличие каталога, указанного для кросс-компилятора root\include, не позволяло работать с содержанием. Конечно, как только вы добавляете каталоги, перестройте индекс.

Возможно, вам придется проверить свои настройки Windows- > Preferenes- > C/С++ → Indexer Cache Limit и увеличить их, если они слишком малы. У меня установлен мой максимальный 256 МБ.

Ответ 8

Я считаю, что Slickedit (http://www.slickedit.com) справляется с этим довольно хорошо.

Ответ 9

Netbeans иногда понимает это правильно, но не всегда. Он не детерминирован: похоже, что подобный код может быть разобран или нет, в зависимости от прихоти среды IDE.