LINUX.ORG.RU
ФорумTalks

[loroogle] Интеллисенсы

 


0

0

Репощу вопрос, на который мне в девелопменте не ответили:

есть ли хоть один открытый инструмент, который способен выдавать подсказки по плюсовым темплейтам? Причем не только в тех случаях, когда они юзаются как дженерики, а, например, умеющие раскручивать цикл специализаций?

Ответ на: комментарий от Pavval

> Посмотри QtCreator, Kdevelop4. Мож там есть.

Забыл добавить, не надо меня принимать за идиота.

Обе означенные софтины умеют ничего. ctags умеет чего-то, но очень плохо.

FeiWongReed
() автор топика
Ответ на: комментарий от e3d08dff

Все морды к ctags (разве что к нему есть патчи, резко увеличивающие качество подсказок). Eclipse CDT. Ну и всякая срань вроде QtCreator, Code::Blocks само-собой.

Ближе всего к идеалу Visual Assist, но на коде, с которым приходится иметь дело, даже у него крышу рвет. Да и платный он. Да и под вантуз.

Из открытого лучшее, что пока получалось сделать, это vim+ctags (emacs не осилил пока), но это все слишком слабо.

FeiWongReed
() автор топика
Ответ на: комментарий от e3d08dff

Срань еще какая. Я уж лучше в виме или в CDT попишу, чем в этой пародии на иде, с глянцевыми круглыми кнопками. В конце-концов, шаблоны оно совсем не умеет.

И вопрос не о студии, в которой, кстати, нативный интеллисенс куда хуже чем у ctags. Вопрос посвящен сугубо открытым продуктам.

FeiWongReed
() автор топика
Ответ на: комментарий от tia

Это не будет ответом.

Ибо убожество что первое, что второе.

Хелловорлды писать. Еще раз. Нужны подсказки по темплейтам, причем по сложным случаям. Чтобы оно могло цикл специализаций раскрутить и из последнего типа выдрать имена членов, например.

И чтобы на бустовских хидерах не зависало и не входило в бесконечный цикл.

FeiWongReed
() автор топика

KDevelop4 УМЕЕТ.

template <bool T>
class assert
{
	public:
		assert();
		void doit(int i);
};

template <>
class assert<true>
{
	public:
		assert();
		void doit(int i, int j);
};

int main(int argc, char **argv) 
{
	assert<true> at;
	assert<false> af;
	at.doit(1,2);
	af.doit(1);
	return 0;
}

Вконце корректно предлагает методы с нужным кол-вом параметров.

И впредь не сри на ЛОРе, а проверяй сам.

Pavval ★★★★★
()
Ответ на: комментарий от FeiWongReed

Emacs'овый cedet с шаблонами тоже не дружит (это что-бы время не тратить)

CEMEH
()
Ответ на: комментарий от Pavval

В продолжение:

D 

template <int T>
class assert : public assert<T-2>
{
};

template <>
class assert<0>
{
	public:
		assert();
		void do0();
};

template <>
class assert<1>
{
	public:
		assert();
		void do1();
};

int main(int argc, char **argv) 
{
	assert<15> at;
	assert<16> af;
	at.do1();
	af.
	return 0;
}

пруф

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

Может быть и научился. Обязательно пощупаю, раз так.

Хотя уверен, что на вещах более-менее сложных посыплется.

FeiWongReed
() автор топика
Ответ на: комментарий от e3d08dff

Я третью версию кдевелопа до сих пор с дрожью вспоминаю. Четвертую смотрел в стадии ранней альфы. Как увидел, так моргнул. Одним глазом. Может теперь хорошо стало, перепроверю обязательно. Спасибо за наводку.

Да, как оно по скорости? Если в него проект строк тыщ так на сто засунуть не свернется трубочкой?

И еще - оно каждый раз все парсит, или кэши создает?

FeiWongReed
() автор топика
Ответ на: комментарий от FeiWongReed

Сижу на транке. Проект огромнейший, но сколько мне приходилось юзать в один момент - не скажу точно (я про кол-во непосредственно подтянутых строк кода в данный файл сорцов). Перепарсивает быстро, вроде не с нуля (т.е. кеширует). К скорости претензий ни разу не было. Очень сомневаюсь, что ему станет плохо от большого проекта.

З.Ы. Скоро (максимум пару месяцев) будет фризиться перед стабильным релизом.

Pavval ★★★★★
()

NetBeans? Меня ооочень устраивает плагин С++ в нем. Единственное что не радует, то что система сборки своя, а не какая нибудь популярная. Тоесть из Нетбинсовского проекта напрямую делается Makefile. Ugly! Но сама среда в работе с С++ заслуживает твердое 5.

На нем еще основано SunStudio. Можно поиграться, может компилятор понравится.

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Только он хедеры разруляет, которые не через pkg-config или что-то в этом роде. Для целей подсказывания он pkg-config не запустит и будем подчеркивать include. Соответственно ничего не находить.

vertexua ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.