Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
илитный ресурс сегодня мне раскрыл глаза на очередное крестоблядство керниган-гай-ричи-блядство:
с:
The implementation shall define char to have the same range, representation, and behavior as either signed char or unsigned char.
Irrespective of the choice made, char is a separate type from the other two and is not compatible with either.
с++:
Characters can be explicitly declared unsigned or signed. Plain char, signed char, and unsigned char are three distinct types.
да вот же
всю жизнь хватало char vs unsigned char (которые могут представляться одинаково, но это никому не мешало)
не мешало в т.ч. потому, что http://ideone.com/5XpeG
элегантно разрулили то, что одна имплементация хочет считать все символы больше #127 - отрицательными и ничтожными, а другая - полезными и бНОПНЯ
и это вместо того, чтобы запретить отрицательные символы, а всех кто считает иначе - предать анафеме
В С с этим особых проблем нет, т.к. там нет перегрузки. И там, в зависимости от опции, char неотличим либо от signed-char либо от unsigned-char.
В с++ ситуация более сложная, т.к. есть перегрузка, и именно там эти типы сделали различными, чтобы можно было писать одну перегрузку с char а не по две перегрузки каждой функции с unsigned char и signed char, которые программисты вечно бы забывали.
Погадаю на кофейной гуще: char - для символов, unsigned char и signed char - для чисел. Другой логики я не вижу 🙂
UPD: только после отправки понял, что написал x..ню.
> UPD: только после отправки понял, что написал x..ню.
Где тут х..ня, Xom94ok?
Вроде как все верно - char для символов, где на знаковость почти наплевать, и она рулится опцией компилятора/дефолтами, а signed char и unsigned char для чисел, где важна знаковость. По мне так адекватное предположение.
Вот только какого х.я по дефолту символы знаковые? Русские буквы во всяких там однобайтовых кодировках так удобно было проверять на диапазоны из-за этих минусов...
потому что традиционно все С компиляторы имеют свитч, которым можно в программе все char'ы сделать signed или unsigned.
в С++ для совместимости это похоже так и унаследовали, но с расширением: char это то что девел свичами компилера регулирует и совместимо с С, unsigned char это всегда 0..255, signed char это всегда -128..127.
но к слову я как бы не уверен что это по стандарту так. в GCC это именно так. но в паре комерческих С++ компиляторов с которыми я работал, свичом реально меняется char на signed/unsigned char. что есть весьма бесполезно и почему на свиче в доке стоит большой варнинг: типа ломает сигнатуры, использовать только для С кода.
$ gcc --help -v 2>/dev/null | grep signed-char | grep default
-fsigned-char Make "char" signed by default
-funsigned-char Make "char" unsigned by default
SunStudio:
$ CC -help | grep xchar
-xchar=<a> Treat type char as signed or unsigned; <a>={s|signed|u|unsigned}
IBM's xlC:
$ man xlC
---- snip ----
-qchars={signed|unsigned}
Specifies whether the data type char will be signed
or unsigned.
Default: -qchars=unsigned
---- snip ----
хуже. я в германии работаю. мне постоянно на трех языках приходится работать/разговаривать/думать. на это мои мозги просто не способны - у меня очевидно лимит два языка.
другими словами, то что ты видишь это перевод с немецко-англиского (с французским акцентом) на русский (с беларуским дзыканьем) 🙂
Отговорок может быть куча. Например фотоаппарата нет.
Но виртуальное ж есть: /dev/vcs
Или гумно настолько нищеброд, что не может позволить себе виртуальное устройство?
Ок. Будет тебе 3-е место в списке обосравшихся при всем народе мудаков.
Все согласны?
На этом сайте есть только говно, его ты и получаешь в приз - употребляй сколько душе угодно.
А кстати правда, на 12 Убунте и производных типа Минта скриншот не сделать, даже в фрейм-буффер не залезть, если десктоп рендерится через dri. Проблема как бы существует 🙂
Не поможет. там фишка в другом, если dri используется то получить картинку с экрана просто неоткуда 🙂 Виноват, как обычно, Х. Т.е. сервер сам картинку даже не собирает, он перенаправляя все вызовы видеокарточке - а она уже как соберет, так и будет. У меня вообще, например, при смене драйверов к видеокарточке менялся размер шрифтов, сглаживание и все такое. У Х этой информации просто нету, а как спросить у видеокарточки - ну, не знаю, я в ОГЛ не силен, может есть какие функции для этого, но выглядит на первый взгляд заморочливо...
Так что ни ГИМП, ни ИмиджМаджик не помогут - им тоже неоткуда это взять. Они могут только если композиция делается процессором, т.е. софтовая эмуляция ОГЛ.
А фишка эта еще и потому, что новые "навороченные" десктопы типа третьего гнома + юнити и т.п. решили, что им просто необходимы шейдеры и все такое. И теперь они отрисовываются через dri - ну вот и получилось...
Я когда говорил про фрейбуффер, имел в виду виртуальный фреймбуффер у Х, а не видеокарточки.
Я так себе представляю, что драйвер должен предоставлять такую возможность, как сделать скриншот 🙂 очевидно он этого не делает / делает не правильно. А больше получить это не от куда.
Уточнение, это только актуально для АМД карточек с fxglr драйверами (но с другими не поиграешь, например, да и десктоп будет плохо выглядеть). Хотя, с АМД вообще не особо поиграешь... так что 😐
всю жизнь хватало char vs unsigned char (которые могут представляться одинаково, но это никому не мешало)
не мешало в т.ч. потому, что http://ideone.com/5XpeG
и это вместо того, чтобы запретить отрицательные символы, а всех кто считает иначе - предать анафеме
В с++ ситуация более сложная, т.к. есть перегрузка, и именно там эти типы сделали различными, чтобы можно было писать одну перегрузку с char а не по две перегрузки каждой функции с unsigned char и signed char, которые программисты вечно бы забывали.
UPD: только после отправки понял, что написал x..ню.
Где тут х..ня, Xom94ok?
Вроде как все верно - char для символов, где на знаковость почти наплевать, и она рулится опцией компилятора/дефолтами, а signed char и unsigned char для чисел, где важна знаковость. По мне так адекватное предположение.
Вот только какого х.я по дефолту символы знаковые? Русские буквы во всяких там однобайтовых кодировках так удобно было проверять на диапазоны из-за этих минусов...
В разных системах может быть по-разному.
Тоже не считаю это хуйней.
char, signed char и unsigned char - это все символы
они вводятся и выводятся как символы
Надо скачать свежую версию либастрала, с поддержкой зелёных ссылок.
а компилятор С++
вообще, конечно, глазастый 😉
в С++ для совместимости это похоже так и унаследовали, но с расширением: char это то что девел свичами компилера регулирует и совместимо с С, unsigned char это всегда 0..255, signed char это всегда -128..127.
но к слову я как бы не уверен что это по стандарту так. в GCC это именно так. но в паре комерческих С++ компиляторов с которыми я работал, свичом реально меняется char на signed/unsigned char. что есть весьма бесполезно и почему на свиче в доке стоит большой варнинг: типа ломает сигнатуры, использовать только для С кода.
Вот ду ю сей браза ай донт андестэнд ю.
SunStudio:
IBM's xlC:
> > ... девел свичами компилера регулирует ...
... разработчик контролирует конфигурацией компилятора ...
Ты настолько наанглососонился, что даже не в состянии сказать по-русски не криво?
Разработчик выставляет флаги компилятора.
другими словами, то что ты видишь это перевод с немецко-англиского (с французским акцентом) на русский (с беларуским дзыканьем) 🙂
Триальная версия.
то фоткай на телефон, с супом.
Но виртуальное ж есть: /dev/vcs
Или гумно настолько нищеброд, что не может позволить себе виртуальное устройство?
Все согласны?
На этом сайте есть только говно, его ты и получаешь в приз - употребляй сколько душе угодно.
Так вот тут ситуация точь-в-точь - в списке публично осрамившихся поделил 2-3 места с HaskellGovno.
Так что ни ГИМП, ни ИмиджМаджик не помогут - им тоже неоткуда это взять. Они могут только если композиция делается процессором, т.е. софтовая эмуляция ОГЛ.
А фишка эта еще и потому, что новые "навороченные" десктопы типа третьего гнома + юнити и т.п. решили, что им просто необходимы шейдеры и все такое. И теперь они отрисовываются через dri - ну вот и получилось...
P.S. На нвидии в юнити спокойно делаю скрины (к примеру скрин lynx в недавнем треде).
P.P.S. А ну хотя у меня DRI вроде и выключен, но включен GLX, домой приду - проверю.
Я так себе представляю, что драйвер должен предоставлять такую возможность, как сделать скриншот 🙂 очевидно он этого не делает / делает не правильно. А больше получить это не от куда.