LINUX.ORG.RU

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

>что это? похоже на исповедь лузера-неосилятора и, кагбэ, фраза «C++ classes look pretty surreal» на то непрозрачно намекае (дальше не стал читать)

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

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

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

Интересная ссылка, спасбо почитаю. Хоть что-то конкретное, а не слюни на пол экрана :)

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

>что будет течь?

Ну для объекта определено приведение к char* - указателю символы. Что стоит ожидать от такого приведения? Выделение памяти, запись туда некоторой строки и возвращение указателя. Указатель нигде не сохраняется и память под строку благополучно течет.

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

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

месье, я устал, поэтому я без долгих дискуссий предлагаю Вам либо привести пруф, либо проследовать туда же куда и предыдущему оратору

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

>месье, я устал, поэтому я без долгих дискуссий предлагаю Вам либо привести пруф, либо проследовать туда же куда и предыдущему оратору

Пруф чего? Того, что у него больше опыта? Ну товарищ девелопер и занимается computer vision. А это уже как-бы о чем-то говорит.

Ты же в свою очередь даже не дочитал, почему он считает С++ классы неуклюжими.

Вывод о тебе тут очень легко сделать.

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

> Для char? ;)

Продолжаем тупить? ;)

Указатель нигде не сохраняется


Не надо по себе судить о других.

Что стоит ожидать от такого приведения?


Весьма своеобразные ожидания от плюсов и программистов на нём. ))

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

>Давай наоборот. ))

Ты напиши пример, где память будет течь, и мы посмеемся. )))

Давай ты не будешь мне грубить?

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

>Давай наоборот. ))

Ты напиши пример, где память будет течь, и мы посмеемся. )))

Тем более, что так не делается. Я говорю, что сделать безопасное приведение с char* нельзя. Ты говоришь, что можно и просишь меня сделать нечто неработающее.

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

> Давай ты не будешь мне грубить?

Я тебе еще не грубил. Если ты, конечно, не воспринимаешь перспективу того, что над твоим кодом могут похихикать, как личное оскорбление.

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

> Я говорю, что сделать безопасное приведение с char* нельзя. Ты говоришь, что можно и просишь меня сделать нечто неработающее.

Ну тут варианта два. Либо ты сам допрешь, либо кто-нибудь еще влезет и всё тебе растолкует. Тем более, что объяснять то нечего. Всё уже разжевано до неприличия.

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

> мб тогда я не буду гадать

У нас свободная страна.

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

Пруф чего?

своих слов

Ну товарищ девелопер и занимается computer vision. А это уже как-бы о чем-то говорит.

о чём же? о том что будущее CV с такими спецами печально? да никто в этом и не сомневался

Ты же в свою очередь даже не дочитал, почему он считает С++ классы неуклюжими.

сэр, он этого просто не написал, так что и читать нечего

to me, C++ classes look pretty surreal compared to classes defined in almost any other language I've ever seen. Anyway...

для меня классы в С++ выглядят довольно сюрреалистичными в сравнении с тем как это сделано в других языках. Как бы то ни было...

я что-то пропустил в этом умном рассуждении, скажите?

ой вей! шо делать, я пропустил ссылку где написано про «сюр», не бейте сейчас исправлюсь

How do I create objects? And what happens when they are no longer needed? Is it my job to figure out which ones are unused and deallocate them? Bad.

Как я должен создавать объекты? И что делать когда они больше не нужны? Это что моя работа знать для каких из них я должен освободить ресурсы? (* нет, бл@дь, тётушка Эмилия придёт и всё почистит, это тебе не С# тупой удод - прим. пер.) Плохо.

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

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

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

и что, это для Вас авторитет? если да - купите себе погремушек

Вывод о тебе тут очень легко сделать.

выводы вообще легко делать, только от этого они правильными не становятся

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

Ну значит буду гадать. ИМХО варианта тут два.

1) либо память течет.

2) либо объект будет тягать с собой строку до своего уничтожения.

Оба варианта говно.

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

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

Да суть в том, что у тебя банальный баттхерт.

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

всё с тобой ясно, присоединяйся к предыдущему оратору, ему без тебя в биореакторе скучно

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

Оба варианта говно.

первый вообще не вариант :), поэтому кстати я не пользуюсь ни printf, ни cout, а завел себе несколько функций и классов:

LString str = "*************"; 
 
Log( Format( "Hello %d", 100 ) ); 
LogError( "ops" ); 
Log( "ops again", ltLOG_ERROR ); 
Log( Format( "%s", str ), myLOG_LEVEL ); 
... 
theLogManager->SetTarget( myCustomLogTarget ); 
theLogManager->AddConsoleTarget(); 
theLogManager->AddFileTarget( "/var/log/file.txt" ); 
theLogManager->AddFileTarget( "/var/log/file2.txt", myLOG_LEVEL ); 
... 

что позволяет и форматировать, и разделять логи и дублировать в разные места

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

И снова не угадал - не найдёшь. По крайней мере в линуксовом.

На самом древнем Linux-е, что попался под руки:

man fprintf:

   The length modifier
       Here, `integer conversion' stands for d, i, o, u, x, or X conversion.

       hh     A following integer conversion corresponds to a signed char or unsigned char argument, or a following n conversion corre-
              sponds to a pointer to a signed char argument.

       h      A  following  integer  conversion  corresponds to a short int or unsigned short int argument, or a following n conversion
              corresponds to a pointer to a short int argument.

       l      (ell) A following integer conversion corresponds to a long int or unsigned long int argument, or a following n conversion
              corresponds  to  a  pointer  to  a  long int argument, or a following c conversion corresponds to a wint_t argument, or a
              following s conversion corresponds to a pointer to wchar_t argument.

       ll     (ell-ell).  A following integer conversion corresponds to a long long int or unsigned long long int argument, or  a  fol-
              lowing n conversion corresponds to a pointer to a long long int argument.

$ cat /etc/SuSE-release 
openSUSE 10.2 (i586)
VERSION = 10.2
a_nan
()
Ответ на: комментарий от lester

>первый вообще не вариант :), поэтому кстати я не пользуюсь ни printf, ни cout, а завел себе несколько функций и классов:

Разумно в общем =)

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

>уже спрашивали про локализацию, как ее сделать с потоками?

и часто приходится писать что-то в потоки, предназначенное для восприятия человеком?

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

в потоки нет, в логи( в том числе на экран ) - да

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

А как это всё связано с потоками и т.п.? Это совершенно отдельная задача формирования строк, напрямую не связанная вводом-выводом.

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

мне казалось, что тут обсуждался именно вопрос форматирования, а не, что красивее: «printf( s )» или «cout < s» ;)

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

> Разделять надо задачи, разделять

здорово конечно :) именно это выше я и показал со своим «Format(...)», на что мне сказали, что с потоками это делается удобнее - хочется увидеть, чем же?

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

код давай, говорю, чтоб было видно разницу - насколько это «удобней»(с)

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

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

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

п%здец :) еще раз, вот строка кода с printf:

printf( _(«item %1 of %2»), i, n );

давай свой вариант с потоками - это не больно

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

> Это должна быть отдельная задача, не связанная с вводом-выводом

я ж не спорю :) но этот JackyTreehorn упорно твердит, что он знает более удобный способ написать ту строку, что я привел в предыдущем сообщении - пусть показывает

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

он вроде как защищал именно форматирование в формате «<< ... << ...»

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