1. C++ / Говнокод #17134

    +55

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    On Wed, 29 Oct 2014 20:29:33 +0000
    via Digitalmars-d <[email protected]> wrote:
    
    > On Wednesday, 29 October 2014 at 20:13:34 UTC, ketmar via 
    > Digitalmars-d wrote:
    > > On Wed, 29 Oct 2014 13:07:38 -0700
    > > Walter Bright via Digitalmars-d <[email protected]> 
    > > wrote:
    > >
    > >> There are still two string types, something you can't quite 
    > >> escape dealing with.
    > > and D has three string types. it's even better than C++!
    > 
    > Only three? C++ has seven:
    > 
    > 1. const char*  /* zero terminated single byte*/
    > 2. const char*  /* zero terminated multi byte */
    > 3. const wchar_t*  /* zero terminated wide */
    > 4. std::string	
    > 5. std::wstring
    > 6. std::u16string
    > 7. std::u32string
    ah, D has those 'char*' family too, but i don't count them as string
    types. ok, C++ wins. again. ;-)

    Хоть и не код, но смешно.
    Источник: http://forum.dlang.org/thread/[email protected]?page=3

    Запостил: rst256, 18 Ноября 2014

    Комментарии (34) RSS

    • А в Delphi-то их ещё больше...
      Ответить
    • Ну в C++ их все-таки два:
      const char_type*
      std::basic_string<char_type>


      Остальное - разновидности с разными char_type.
      Ответить
      • Тогда в D - один тип, массив char_type[]. А остальное - просто разновидности, мутабельные и иммутабельные, с разным char_type.
        Ответить
    • Тест почтенной публики на олдфажность: кто помнит еще один способ представления строки, почти как ASCIIZ, но строка заканчивалась вовсе не нолем, а одним очень известным символом).
      ----
      речь конечно же не о сях
      Ответить
      • хуй$
        Ответить
      • Баксом строка заканчивалась. И речь о ненужной функции DOS'а, потому что вместо этой функции все пользовались функцией видеобиоса.
        Ответить

        • >>ненужной
          Всмысле 10h/13h?
          Я вот конечно не помню, но педивики говорит что "EGA+, meaning PC AT minimum".
          Это значит что без 09H нельзя было написать код, который работал бы и в 5150, там же было CGA или MDA, нет?
          Ответить
        • > функцией видеобиоса
          Которая лагала как говно, и поэтому все пользовались прямым выводом в видеопамять.
          Ответить
          • да-да, особенно строку текста :)
            Ответить
          • Но тогда в графическом режиме для вывода текста придётся использовать собственные шрифты, а стандартные средства ввода текста не будут работать и их придётся велосипедить. Поэтому в Турбо Паскале обычно писали DirectVideo := false; чтобы выводить текст через прерывания и использовать Read[ln]/Write[ln] вместо велосипедов.

            Ну и судя по количеству программ, вывод которых можно было перенаправить через >, чисто консольные программы использовали тупо вывод в файл с дескриптором №1 вместо вывода в видеопамять или int 10h.
            Ответить
      • Борманд с греем получают звезду олдфага
        Ответить
        • У мс (и не только) даже определения строк им заканчивались: в бецике K$ - означало строковой тип.
          Вот такая своеобразная венгерка, что в те древние времена даже было удобно.
          Ответить
          • А мне нравится, как сделано в Бейсике. Сразу видно, какие значения могут храниться в переменной.
            Ответить
            • Они даже дальше пошли: все встроенные функции, которые возвращали строку тоже заканчивались на $ - MID$, LEFT$, CHR$
              Ну и другие типы были, но это уже в qb ввели:
              QBasic has five built-in types: INTEGER (%), LONG(&) integer, SINGLE(!) float, DOUBLE(#) float and STRING($).
              Но остальные значки я так и не вспомню сразу без гугла, только $.

              Тому же пхп стоило поучиться, то расходуют доллары понапрасну.
              Ответить
              • > Тому же пхп стоило поучиться, то расходуют доллары понапрасну.
                Как грубо! В пхп продуманная система типов.

                PHP has five built-in types: INTEGER ($), LONG($) integer, SINGLE($) float, DOUBLE($) float and STRING($).
                Ответить
                • ARRAY ($) и OBJECT ($) забыл ;)
                  Ответить
                  • А как же BOOLEAN ($), RESOURCE ($) и псевдотипы NULL ($) и CALLBACK/CALLABLE ($)?
                    Ответить
                    • /[^\$]+\(\$\)/
                      Ответить
                      • (ノ$__$)ノ ʅ(◔౪◔ʅ)
                        Ответить
                        • :P :-| :P
                          Ответить
                          • ░░░░▄▄▄▄▀▀▀▀▀▀▀▀▄▄▄▄▄▄
                            ░░░█░░░░▒▒▒▒▒▒▒▒▒▒▒▒░░▀▀▄
                            ░░█░░░▒▒▒▒▒▒░░░░░░░░▒▒▒░░█
                            ░█░░░░░░▄██▀▄▄░░░░░▄▄▄░░░█
                            █░▄▄▄▒░█▀▀▀▀▄▄█░░░██▄▄█░░░█
                            █░▒▄░▀▄▄▄▀░░░░░░░░█░░░▒▒▒▒▒█
                            █░░░█▄░█▀▄▄░▀░▀▀░▄▄▀░░░░█░░█
                            ░█░░▀▄▀█▄▄░█▀▀▀▄▄▄▄▀▀█▀██░█
                            ░░█░░██░░▀█▄▄▄█▄▄█▄████░█
                            ░░░█░░░▀▀▄░█░░░█░███████░█
                            ░░░░▀▄░░░▀▀▄▄▄█▄█▄█▄█▄▀░░█
                            ░░░░░░▀▄▄░▒▒▒▒░░░░░░░░░░█
                            ░░░░░░░░█▀▀▄▄░▒▒▒▒▒▒▒▒▒▒░█
                            ░░░░░░░░█░░░░▀▄▄▄▄▄▄▄▄▄▄█
                            ░░░░░░░░█░░░░░░░░█░░░░░░
                            ░░░░░░░▄██▄░░▀▀░▄█▀▄░░░░
                            ░░░░░▄▀░▀▄▀▀███▀▀▄▀░▀▄░░
                            ░░░░░█░░░░▀▄▀░▀▄▀░▄░░█░░
                            ░░░░░█░█░░░█░░░█░░█░░█░░
                            ░░░░░█░█░░░░▀▄▀▀▀▀█░░█░░
                            ░░░░░█░█░░░░░▄░░▄██▄▄▀░░
                            ░░░░░█░█░░░░░▄░░████░░░░
                            Ответить
                      • >> [^\$]
                        А разве в character classes надо экскейпить бакс?
                        Ответить
                        • Не надо. Но если писать \$, можно чуть меньше думать, используя один и тот же стиль.
                          Ответить
                          • Зато можно заболеть синдромом зубачистки потому что саму палку тоже нужно эскейпить от интерпретатора.
                            Ответить
                            • > что саму палку тоже нужно эскейпить от интерпретатора.
                              У меня в жс для этого есть литералы, у кого-то есть какие-нибудь строки вида r"\$".
                              Да и вообще при желании можно сменить язык на тот, где регулярные выражения удобнее.
                              Ответить
                              • > У меня в жс для этого есть литералы
                                /\//
                                Ответить
                                • /(?:\/)/

                                  P.S. Это же сам Король. http://u.to/iLGECQ
                                  Ответить
                                  • А помоему это канадец из южного парка с головой набок

                                    http://www.clevescene.com/images/blogimages/2010/06/23/1277317881-terrencenphilip.jpg
                                    Ответить
                              • >>Да и вообще при желании можно сменить язык на тот, где регулярные выражения удобнее.

                                Вот так-то люди и становятся перловрубистами
                                Ответить
              • --Скажите, вы можете встроить в свой язык boolean?
                --Нет, у нас закончились внятные символы.
                --Ну пожалуйста!
                --Ну ладно, BOOLEAN(ø) встроен. Но работает он только в странах Северной Европы.
                Ответить
                • А для всех остальных можно ввести макрос O_SLASH:
                  http://www.gavnoe.dk/slotsbryggeriet-gavnoslash.html
                  Ответить

    Добавить комментарий