LINUX.ORG.RU

[C/C++/...][KDevelop] В продолжение разговора о int *i и int* i; int &i и int& i

 


0

1

Я так понял, большинство здесь таки придерживается стиля K&R, то есть прилепляет «*» и «&» к названиям переменных. Я тоже.

Замечательный astyle имеет параметр «--align-pointer» с возможными значениями type/middle/name.

А вот KDevelop в модуле переформатирования кода вообще не поддерживает эту фичу, то есть не трогает «*» и «&» и указателях и ссылках. Но вот при авто-дополнении всегда прилепляет эти значки в стиле Страуструпа, то есть к типу.

Кому не нравится это поведение, просьба проголосовать в https://bugs.kde.org/show_bug.cgi?id=263834.

★★★★★

Последнее исправление: Obey-Kun (всего исправлений: 1)
Ответ на: комментарий от Obey-Kun

а, всмысле K&R... Ну так KDevelop при автодополнении использует стиль Страуструпа и это ужасно бесит, ибо приходится его поправлять. А иногда забываешь это сделать, а потом глазами натыкаешься и противно становится :). Благо, astyle сиё умеет исправлять.

Obey-Kun ★★★★★
() автор топика

It doesn't change pointers and references

KDevelop currently doesn't support this option

Damn I'm mistaken.

Сравни:

alligns alligned alligning

«--align-pointer»

Остальное менее очевидно.

anonymous
()
Ответ на: комментарий от dt1

Хз, на самом деле так банально привычнее :)

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

> а зачем «*» и «&» прилеплять к названиям переменных? они же к типу относятся

Сколько по вашему здесь указателей?

int* p1, p2;

anonymous
()
Ответ на: комментарий от dOzEr

спасибо, посмотри сообщение выше :)

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

давно не видел KDevelop, может так уже и есть, но по-хорошему должен быть шаблон, в котором можно будет указать хоть #pragma once, хоть первую главу из «Война и Мир», это будет универсальное решение

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

>давно не видел KDevelop, может так уже и есть, но по-хорошему должен быть шаблон, в котором можно будет указать хоть #pragma once, хоть первую главу из «Война и Мир», это будет универсальное решение

Зачем там шаблон?

<лицензия>
<include-guard>

<класс>

</include-guard>

И так ведь все ясно.

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

>> Зачем там шаблон?

я, например, «#ifndef MAINWINDOW_H» не пишу - мне хватает прагмы, и выглядит аккуратней


Поздравляю, ты пишешь непортабельный код.

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

кроме того, есть же еще namespace - который также автоматом удобно подставлять, еще я например всегда перед class пишу:

/**********************************************************************************************/
// comment
//

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

Почитай википедию по pragma once. Pragma на то и прагма, её надо употреблять только если и без неё код останется рабочим.

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

> Поздравляю, ты пишешь непортабельный код.

ну не знаю - собирается win/mac/linux, arm/86/86_64/ppc, так на чем у меня не соберется?

aho
()
Ответ на: комментарий от Obey-Kun

> Почитай википедию по pragma once. Pragma на то и прагма, её надо употреблять только если и без неё код останется рабочим.

читал - но того, что на практике это работает прекрасно без макроса, это не отменяет

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

> И так ведь все ясно.

Если создаём класс mynamespace::Class, то там ещё будут относящиеся к namespace строки.

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от aho

> читал - но того, что на практике это работает прекрасно без макроса, это не отменяет

Плохой подход. Виндузятникам позволительно, они же виндузятники, но вот никсоидам? Пишите портабельный код.

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от Obey-Kun

> Пишите портабельный код.

еще раз - где у меня не соберется? для embedded я не пишу, gcc + icc + msvc прекрасно поддерживают такой подход

aho
()
Ответ на: комментарий от Obey-Kun

>Если создаём класс mynamespace::Class, то там ещё будут относящиеся к namespace строки.

Причем это и ежу ясно, где будет находиться namespace foo { и для этого все равно не нужен какой-либо шаблон.

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

> вы еще обругайте GNU-код и Линуса за GCC-мы :)

Вы не найдёте у Линуса или GNU ни одного исходника, где была бы pragma once или не было бы include guards.

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от Obey-Kun

> Вы не найдёте у Линуса или GNU ни одного исходника, где была бы pragma once или не было бы include guards.

как я уже говорил - pragma once как раз портабельна, в отличие от, например, многих аттрибутов gcc, ({}) и т.д.

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

> #pragma once is not a standard and it's not really an improvement in GCC (safe guards are already optimized).

Там уже ответили. Вторая часть предложения для меня является открытием.

Ответь тому чуваку, что хоть это не является частью стандарта, но используется во некоторых проектах, а значит контрибьютеры тех проектов страдают и дописывают это сами, а значит хотелось бы хотя бы видеть это как опцию.

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от Obey-Kun

> Вы не найдёте у Линуса или GNU ни одного исходника, где была бы pragma once или не было бы include guards.

Опечатка. Естественно имелось в виду

Вы не найдёте у Линуса или GNU ни одного исходника, где была бы pragma once И не было бы include guards.

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от Obey-Kun

> --std=c99 и всё.

вы так говорите будто С99 где-то поддерживается на 100% :)

aho
()
Ответ на: комментарий от Obey-Kun

>> #pragma once is not a standard and it's not really an improvement in GCC (safe guards are already optimized).

Там уже ответили. Вторая часть предложения для меня является открытием.


Ответь тому чуваку, что хоть это не является частью стандарта, но используется во некоторых проектах, а значит контрибьютеры тех проектов страдают и дописывают это сами, а значит хотелось бы хотя бы видеть это как опцию.


Не хочешь сам присоединиться к дискусии? А то меня там мало:)

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

меня комменты почти убедили. видимо, они правы.

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от aho

> читал - но того, что на практике это работает прекрасно без макроса, это не отменяет

Вот отличный образец логики говнокодера. Пофиг на стандарты, «мне так удобнее и оно работает».

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

давай не глядя - выкладываем по одному своему проекту в тарболе и вместе смотрим сырцы, а потом решаем - у кого говнокод и плохое оформление? :)

aho
()
Ответ на: комментарий от geekless

значит записываем тебя в очередные «аналитики», которые хороший код не пишут, но много о нем рассуждают, тут половина ЛОРа такие

aho
()
Ответ на: комментарий от Obey-Kun

> Разве не I mistaked? mistaken вообще не о том :).
http://en.wiktionary.org/wiki/mistaken
Согласен. Это больше про заблуждения, в смысле ошибаться в течении некоторого промежутка времени, нежели про одну конкретную ошибку.

> I mistook.
Не годится, ибо to mistake - транзитивный глагол, а значит требует объекта действия:
I mistook the place.
I mistook you for someone else.

Я бы написал «I made a mistake».

anonymous
()
Ответ на: комментарий от aho
bool Command::Execute( void )
{
	switch( mID )
	{
		case kCmdAssign			: return DoAssign();
		case kCmdCloseCursor	: return DoCloseCursor();
		case kCmdExec			: return DoExec();
		case kCmdFetchRecord	: return DoFetchRecord();
		case kCmdGoTo			: return DoGoTo();
		case kCmdGoToIf			: return DoGoToIf();
		case kCmdGoToIfNot		: return DoGoToIfNot();
		case kCmdNope			: return true;
		case kCmdOpenCursor		: return DoOpenCursor();
		case kCmdPrint			: return DoPrint();

		default:
			break;
	}

	return false;
}

Извините что влезаю, вы считаете это образцом хорошего стиля?

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

> Извините что влезаю, вы считаете это образцом хорошего стиля?

я и не претендовал на хороший стиль, более того - сам знаю, что многие места надо переправить, и если бы это мне сказал кто-то другой, а не очередной «аналитик», то я бы сразу согласился, но мне стало интересно - а может я ошибаюсь, может мне сейчас покажут действительно хороший код в качестве примера от того, кто на ЛОРе обзывает всех говнокодерами, и кого я считаю обычным троллем

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

> просто ради интереса, как бы сделали вы в данном месте?
Виртуальные функции и наследование во все поля?

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