LINUX.ORG.RU

Поздно уже его переделывать. Или новый на его основе создавать, если очень хочется.

Фразы вида

the rebinding of the assignment operator to ":=" to better differentiate it from the equality test, which becomes «=»;

явно перегибают.

Хотя есть и такие:

  • the introduction of the abstract keyword to replace the «=0» syntax for pure virtual functions;
  • the rebinding of the «address of» operator to «@» so as to reduce the overloading of «&»;
  • requiring that all iteration or selection statements are followed by brace-enclosed compound statements rather than single unbracketed statements;
Deleted
()
Ответ на: комментарий от name_no

> имеется в виду то, что их использование делает бинарник больше

Чушь.

соответственно увеличивается время запуска программы


Вообще бред. Каким боком размер бинарника связан с временем его же запуска?

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

> я утверждаю, что этот подход даёт аналогичную производительность, но чреват внесением багов при опечатках и обладает меньшей читабельностью

Ещё про типобезопасность не забываем.

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

Вообще бред. Каким боком размер бинарника связан с временем его же запуска?

угу, расскажи про современные жёсткие диски, которые всю имеющуюся информацию хранят в оперативной памяти и стоят как пластмассовые тарелки

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

> угу, расскажи про современные жёсткие диски, которые всю имеющуюся информацию хранят в оперативной памяти и стоят как пластмассовые тарелки

да ну - это не серьезно, разница даже в пару мегабайт практически не скажется на времени запуска

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

> угу, расскажи про современные жёсткие диски, которые...

Это тут при чём? Страничную организацию памяти уже отменили, типа?

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

Кстати о. Почему они в своём время пожмотились на ещё одно слово и сделали вот этого монстра?

Deleted
()

Уж лучше бы синтаксис переписали

на единственный верный - со кучей скобочек

fae-rhan
()

>Предлагается заменить оператор разыменовывания на ^, типы объявлять через двоеточие со словом type, а указатели через ->.
а зачем?

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

> Почему они в своём время пожмотились на ещё одно слово и сделали вот этого монстра?

как по мне и «=0» вполне удобно и пристойно, а abstract занимает 8 символов - и значит выравнивание на 4/8 символов будет сломано и придется отводить больше пустого места слева

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

Экономить пару символов это не повод превращать синтаксис в гидру, как по мне. Он и так не сахар :\ Или уж тогда идти до конца во всём и все ключевые слова сократить до двух символов :}

Deleted
()
Ответ на: комментарий от fae-rhan

> Подарочный набор костылей для сплюсплюсника?

Хм. Дайте еще компилируемый язык, который не имеет таких костылей. Да еще и статический

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

Для С и не нужны ваши перегрузки. А вот в c++ нет defgeneric и defmethod - это плохо

fae-rhan
()
Ответ на: комментарий от Deleted

> Экономить пару символов

не пару - а те самые 4/8

не повод превращать синтаксис в гидру, как по мне.


может дело привычки, но «=0» прекрасно читается глазами при просмотре

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

Вообще меня в коде в описании класа доводит до белого коления что нить типа

virtual sequence::deferred_result<QVariant> request( const QString& a_methodName, const QVariant& a_params = QVariant() ) = 0;

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

Да хоть 4/8. Ты преувеличиваешь проблему, IMHO. С другими словами же живут и ничего.

может дело привычки, но «=0» прекрасно читается глазами при просмотре


namezys вот только что привёл прекрасность :)

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

Сейчас сюда придут апологеты C++ и скажут, что всё прекрасно, прекрасная маркиза :)

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

> Ты преувеличиваешь проблему, IMHO. С другими словами же живут и ничего.

static, virtual, mutable... - меньше 8 символов

namezys вот только что привёл прекрасность :)


«=0» тут никак не повлияло на «прекрасность»

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

Вот что стоило бы сократить, так это «const T& a» в какой нить «@T a», а так же «const T& a = T(123)» в «@T a = (123)»

ну или как-то так

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

скоро найдет :) ждите

это пока не опубликовано. но первая часть самая интересная (sequence::deferred_result). Для этого мне Qt и не хватило (писал выше)

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

Выравниванеи по скобкам может и структурирует код, но превращает его в нечитабельную человеком вещь.

И вообще - как только нужны такие извращенные выравнивания - код надо менять

я обычно virtual пишу на одной строке, возращаемый тип на второй, а все остальное на третей.

Главное правило у меня - не более 100 символов в строке

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

Кстати говоря, да, разбивать же на строки можно, чай не Basic.

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

скоро найдет :) ждите, это пока не опубликовано.

typedef и перенос строк не осилили?

virtual NRequestResult	Request( 
									const QString&  name,
									const QVariant& pm    = QVariant() ) = 0; 
lester ★★★★
()
Ответ на: комментарий от lester

>const QVariant& pm = QVariant() ) = 0;

В этом случае, кстати, = 0 совсем спряталось. Неудобно.

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

Ну вот не нравится мне такой вариант - это раз. Он не особо красивей

Второе - допустим там 30 функций с разными возвращаемыми значениями. Каждый раз typedef'ить. А потом бедному пользователю интерфейса листать код и искать typedef? пробовали, проходили. есть где-то 14 стандартных typedef для отложенного результата (int, str, double и тд) - но не всегда это спасает.

typedef это хорошо, но не всегда

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

> А где-нибудь уже реализованы зайчатки сиппох с лямбдами, авто и т. д.?

VC2010( зарелизилась ), gcc 4.5 ( зарелизилось )

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

> Ну вот не нравится мне такой вариант - это раз. Он не особо красивей

зато читабельней

А потом бедному пользователю интерфейса листать код и искать typedef?


это делается одним шорткатом

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

> это делается одним шорткатом

Во всплывающей документации? тут вопрос удобства. но с typdef'а и начинали - потом отказались. В реализациях интерфейсов, кстати, почти все за typedef'лено

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

> тут вопрос удобства. но с typdef'а и начинали - потом отказались

ты в Qt много видел конструкций вроде «sequence::deferred_result<QVariant>»? или у тебя что-то сложней? ;)

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

QVariant то обернут. А вот другие вещи не всегда

sequence::deferred_result<Моя Заебатая структура для примера>

или еще хуже

sequence::deferred_result<Мой Заебатый шаблон для примера<T> >

Но с этим я справился. но все равно от sequence::_int не уйти (а в глобальное пространство объявлять считаю мовитоном)

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

Зачем тебе писать хелло воулрдл с подключением каких либо библиотек?Попахивает быдлокодерством.

напиши на плюсах эту программу без подключения библиотек

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

> или еще хуже

sequence::deferred_result<Мой Заебатый шаблон для примера<T> >


KISS :) если у вас в коде возникают такие конструкции, то за этим скорее всего стоит неверное проектирование

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

> А boost?

там многое сделано через жопу, чтоб обойти ограничения языка - и получается это у них опять же через жопу( те же лямбды, например, которые уже есть «родные ), есть конечно несколько полезных вещей - но они как раз и сделаны относительно просто и „прямо“ ( тот же smart_ptr, например )

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

ну да. большая часть проблем - это ограничения языка. но пока приходится с этим жить

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

напиши на плюсах эту программу без подключения библиотек

#include <iostream>

int main(int argc, char **argv)
{
    std::cout << "Hello, world!!!" << std::endl;
    return 0;
}

Так пойдет?

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