Если мой код использует интеллектуальные указатели, навигация и завершение не будут работать с SourceInsight. Например, с этим простым примером кода:
class test {
public:
void fun(){}
};
int main() {
boost::scoped_ptr<test> a;
a->fun();
return 0;
}
Когда я нажимаю fun()
в main
SourceInsight говорит мне «символ не найден».
Что-то, что я должен сделать, чтобы исправить это, или у SourceInsight есть ограничения?
Так что я попробовал. Скачал, просканировал на вирусы, подписался на бесплатную пробную версию, установил Wine, запускай!
Теперь я могу заставить SourceInsight импортировать символы из каталогов Boost:
Затем я ввожу путь к моей директории Boost: Z:\home\sehe\custom\boost\
Обработка занимает минуту или две:
Кажется нормально
Теперь, если вы импортируете эти символы в свой проект:
Вы будут найти вы можете перейти к boost::scoped_ptr<>
очень хорошо (я дважды щелкнул на a
в декларации a
):
Но он не найдет ссылки на fun
:
Находит только объявление:
Конечно, вы можете использовать простой поиск по строке, но это не главное.
Вот экспорт HTML: https://s3.amazonaws.com/stackoverflow-sehe/f14b4ee2-9b4d-49cd-893d-cf69372dd586/HTML/test.cpp.html
Похоже, что это ограничение SourceInsight, а не из-за неправильной конфигурации.
Других решений пока нет …