Войти
ФлеймФорумПрограммирование

[C++11,сказка] Символы для обжатия параметров шаблонов выбраны ошибочно? (2 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 Следующая »
#15
20:09, 2 фев. 2014

Еще одна тема-детектор)


#16
20:18, 2 фев. 2014

=A=L=X=
> 8>=8
То есть ты считаешь, что «правильно» было писать сразу true? А что, если потом это будет заменено на два дефайна, от значений которых будет зависеть значение аргумента по умолчанию?

А сразу записываешь в идиоты. Добрый ты. ;-)

#17
20:25, 2 фев. 2014

eMan.Lived
> Не всем же быть частью безликой серой массы программистов профессионалов.

Это ортогонально к вопросу ТС

eMan.Lived
> Может уже нужно прекратить думать, что во флейме постят код, исключительно из
> крупных профессиональных проектов крупных профессиональных компаний с крупными
> профессиональными программистами, и хоть раз поглядеть не через призму
> профессионально деформированной личности? ;-)

Это так же ортогонально к вопросу ТС.

ТС спрашивает: "Символы для обжатия параметров шаблонов выбраны ошибочно?"

Моё мнение: да. Символы для обжатия параметров шаблонов можно было выбрать и получше.

#18
20:26, 2 фев. 2014

eMan.Lived
> А что, если потом это будет

Вот когда это "потом" наступит - тогда и нужно думать, что и на что заменять.

#19
20:40, 2 фев. 2014

=A=L=X=
> 8>=8
> Клинических идиотов тест запущен.
Поясню: Бывает и такое:
void f(Data data, bool bits_overflow = sizeof(Data)>=CHAR_BIT);
Топикстартер упростил выражение. В чем проблема? А так это вполне понятный самодокументирующийся код.

#20
20:44, 2 фев. 2014

Try
> Прежде чем давать дефолтное значение аргументу, дай ему имя.
Это часто нужно для эксплуатации принципа SFINAE. Давать какое-нибудь глупое имя Dummy параметру который никогда не будет использоваться пользователем кроме как для перегрузки за счет SFINAE - не имеет смысла. Может даже больше запутывать.

#21
20:45, 2 фев. 2014

Kartonagnick
> Символы для обжатия параметров шаблонов можно было выбрать и получше.
Это какие? Есть идеи?

#22
20:50, 2 фев. 2014

◀ и ▶

И еще добавить в кресты – кресты. †, ‡

#23
20:52, 2 фев. 2014

Чтобы руки у некоторых деятелей не чесались использовать шаблоны там где не следует:

template<----class T----> f(void);

#24
20:54, 2 фев. 2014

laMer007

template<!--class T--> f(void);
#25
20:55, 2 фев. 2014

А
> Вон из профессии.
и
> Пишите разборчиво.
органично вписывается в тему и отвечает на все аспекты вопроса ТС. Ага. Так что удерживать дискуссию в рамках темы, начинай с себя, а не тычь другим. :-)

Kartonagnick
> Вот когда это "потом" наступит - тогда и нужно думать, что и на что заменять.
Вообще-то, =A=L=X= указал мне на часть кода, которая, как он считает, является глупостью и вообще так писать это признак клинического идиотизма. Я же эту часть предложил заменить на эквивалентную, но не являющуюся, как Я считаю, глупостью. Отсюда делаю вывод, диагноз — клинический идиотизм, поставлен необоснованно. Если бы =A=L=X= был врачом, то, скорее всего, на любую жалобу и любые симптомы пациента он отвечал бы: «В дурку!». ;-)

#26
21:10, 2 фев. 2014

eMan.Lived
> органично вписывается в тему и отвечает на все аспекты вопроса ТС.

Если вы имеете ввиду меня (#8)
> Kartonagnick
> Уважайте коллег. Пишите разборчиво.

То этот ответ адресован лично вам (#7), а не ТС
> eMan.Lived
> А что не так?
> Kartonagnick
> Уважайте коллег. Пишите разборчиво.

eMan.Lived
> Я же эту часть предложил заменить на эквивалентную, но не являющуюся, как Я
> считаю, глупостью.

Если под эквивалентом вы имеете ввиду #7, то там нет ни слова об "альтернативе".
Там есть лишь говнокод:

int f(int = 7, int * = nullptr, int (*(*)(double))[3] = nullptr);

Если вы позволяете себе так писать - то я пожелаю себе никогда не иметь с вами дела.

laMer007
> Поясню: Бывает и такое:
> void f(Data data, bool bits_overflow = sizeof(Data)>=CHAR_BIT);
> Топикстартер упростил выражение. В чем проблема? А так это вполне понятный
> самодокументирующийся код.

Это совсем другой код. И код в этом виде прекрасно понимается и человеком и машиной.

laMer007
> Это часто нужно для эксплуатации принципа SFINAE. Давать какое-нибудь глупое
> имя Dummy параметру который никогда не будет использоваться пользователем кроме
> как для перегрузки за счет SFINAE - не имеет смысла. Может даже больше
> запутывать.

Есть смысл - читается легче. Особенно легче, когда конструкция обладает повышенной сложностью.

+ Показать

laMer007
> Это какие? Есть идеи?

Если только {}
Хотя вот не вижу смысла об этом думать, ибо бесполезная думка.

#27
21:34, 2 фев. 2014

Kartonagnick
> Моё мнение: да. Символы для обжатия параметров шаблонов можно было выбрать и
> получше.
Я как-то предлагал квадратные скобки, но рабы технологии стали злобно, натужно высмеивать предложение. :trf:

#28
21:59, 2 фев. 2014

Kartonagnick
Я не понимаю, ты что пьяный что ли?

eMan.Lived
> =A=L=X=
> > Adler
> > > void func1(bool=8>=8); //ok
> > Вон из профессии.
> А что не так?

Здесь Я спрашиваю у =A=L=X= (а не у ТС), что в этом коде вызвало у него такую резкую реакцию? Далее Я делаю предположение, на основе предыдущих ответов, что дело в безымянном аргументе, которому присваивается значение по умолчанию, и поэтому, даю ссылку на сайт откуда взял последующую цитату с «говнокодом», в которой рассматривается как раз этот случай.

Но тут вклиниваешься ты со своим глубокомысленным «Уважайте коллег.»

Это хорошо, что ты заботишься о тех, кто будет потом читать и править твой код, тут Я даже возражать не стану. Но не нужно навязывать поступать так, там, где это может быть и совсем не нужно. Ты вообще, где-нибудь прочитал в нулевом посте про коллектив, или про работодателя или может автор темы как-то намекнул, что он пишет код для потомков? Нет, ты как подвыпивший паладин в сверкающих латах, начал лупцевать воздух, желая показать всем пишущим здесь код, что их код, это неприкрытое презрение к коллегам, и что бы они незамедлительно начали писать код максимальнее разоборчивее, что несомненно будет проявлением уважения к коллегам. Как будто все здесь, кроме тебя и тебе симпатичных, только и делают, что испытывают презрение окружающим.

А дальше  ты знаешь: =A=L=X=, показал конкретно ту часть кода, от которой у него сдетонировало сероводородохранилище.

Kartonagnick
> Там есть лишь говнокод:

int f(int = 7, int * = nullptr, int (*(*)(double))[3] = nullptr);

> Если вы позволяете себе так писать - то я пожелаю себе никогда не иметь с вами дела.

Протри забрало, о наимужественнейший из паладинов. Это цитата с сайта cppreference.com.

В общем теперь ты понимаешь, что мой интерес был в том, что вызвало такую реакцию у =A=L=X=, а не в попытке усмотреть автором темы, ошибки в выборе символов для обозначения параметров шаблона? Потому как известно, что плохому танцору…

+ Показать
#29
22:48, 2 фев. 2014

смех смехом, но

a<a<int>> b;
, например, cl(вроде) жрал как вложенную шаблонизацию, а gcc орал на оператор >>. т.е кто-то явно облажался с этими <>.

Страницы: 1 2 3 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.