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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    // пример использования Exaro в своей программе
    // http://www.wiki.crossplatform.ru/index.php/Qt/FAQ/Exaro
    int personId = QString(argv[1]).toInt();
    QString query(QString("SELECT person.id, person.name, city.title " \
    		" FROM person, city " \
    		" WHERE person.city = city.id and person.id = %1").arg(personId));

    OlegUP, 17 Августа 2015

    Комментарии (9)
  2. C++ / Говнокод #18604

    +4

    1. 1
    static const int s_extend_offset[16] = { 0, ((-1)<<1) + 1, ((-1)<<2) + 1, ((-1)<<3) + 1, ((-1)<<4) + 1, ((-1)<<5) + 1, ((-1)<<6) + 1, ((-1)<<7) + 1, ((-1)<<8) + 1, ((-1)<<9) + 1, ((-1)<<10) + 1, ((-1)<<11) + 1, ((-1)<<12) + 1, ((-1)<<13) + 1, ((-1)<<14) + 1, ((-1)<<15) + 1 };

    Это я нашел в libJPG (они там в конец двинулись сдвигать отрицательные числа)

    maxis11, 16 Августа 2015

    Комментарии (28)
  3. C++ / Говнокод #18542

    +1000

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    uint16_t swap_bytes(uint16_t a){
      uint16_t tmp = *((uint8_t*)&a+1);
      *(((uint8_t*)&tmp)+1) = *((uint8_t*)&a);
      return tmp;
    }

    radmir, 28 Июля 2015

    Комментарии (23)
  4. C++ / Говнокод #18530

    +142

    1. 1
    typedef long char wchar_t;

    qnx4.25 /usr/include/stdlib.h:
    sizeof(long char) == 2

    Xom94ok, 25 Июля 2015

    Комментарии (1)
  5. C++ / Говнокод #18498

    +143

    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
    char * hmod = (char *)GetModuleHandleW(L"msenv.dll");
    IMAGE_DOS_HEADER *pDosHeader = (IMAGE_DOS_HEADER *)hmod;
    IMAGE_NT_HEADERS *pNtHeaders = (IMAGE_NT_HEADERS *)(hmod + pDosHeader->e_lfanew);
    char *pcode = (hmod + pNtHeaders->OptionalHeader.BaseOfCode);
    char *ecode = (pcode + pNtHeaders->OptionalHeader.SizeOfCode);
    
    while (pcode < ecode - sizeof(int))
    {
        if((*(int *)pcode) == 0xFFFFDCB8 ||
           (*(int *)pcode) == 0xFFFFDC89 )
        {
            wchar_t buf[1024];
            wsprintfW(buf, L"%p\n", pcode);
            OutputDebugStringW(buf);
        }
        pcode++;
    }

    А как в студийном отладчике искать по памяти?

    Ccik, 20 Июля 2015

    Комментарии (0)
  6. C++ / Говнокод #18478

    +142

    1. 1
    http://pastebin.com/NeWPms7u

    Лаконичное решение как разместить OpenCL и C++ в одном файле. Самое главное что можно спокойно отлаживать данный код. Также объявлять общие переменные и функции OpenCL и host коду. Единственное но! Придется задать пару флагов компилятору OpenCL кода для того чтобы сие подделие заработало. Главный принцип заключается в #if(n)def CL_DEVICE. По умолчанию он не объявлен. Также следует включить поддержку C++ в OpenCL. Скоро кстати выйдет OpenCL 2.1, и вполне возможно что такой трюк и там прокатит. Можно попробовать проделать это с шейдерами, но OpenCL подходит больше всего. Жаль что для OpenCL нету GLM, а если бы он щас был... Тогда можно было такое накодить.

    acterhd, 14 Июля 2015

    Комментарии (0)
  7. C++ / Говнокод #18474

    +144

    1. 1
    uint8_t value = arg & 1 ? arg ^ 1 : arg;

    jangolare, 13 Июля 2015

    Комментарии (7)
  8. C++ / Говнокод #18443

    +142

    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
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    void BloomPattern::process(GLuint rectangleVao, float blurRadius) const
    {
       sptrFrameBufferTwo->enable();
       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
       sptrBrightPassShaderProgram->enable();
       glActiveTexture(GL_TEXTURE0);
       glBindTexture(GL_TEXTURE_2D, sptrFrameBufferThree->getColorTexture().getTexture());
       sptrBrightPassShaderProgram->setUniform("colorTexture", 0);
       glBindVertexArray(rectangleVao);
       glViewport(0, 0, windowWidth >> 1, windowHeight >> 1);
       glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, nullptr);
       sptrFrameBufferOne->enable();
       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
       sptrBlurShaderProgram->enable();
       glBindTexture(GL_TEXTURE_2D, sptrFrameBufferTwo->getColorTexture().getTexture());
       sptrBlurShaderProgram->setUniform("defaultTexture", 0);
       sptrBlurShaderProgram->setUniform("blurRadius", 1.0F / (windowWidth >> 1), 0.0F, blurRadius);
       glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, nullptr);
       sptrFrameBufferTwo->enable();
       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
       glBindTexture(GL_TEXTURE_2D, sptrFrameBufferOne->getColorTexture().getTexture());
       sptrBlurShaderProgram->setUniform("defaultTexture", 0);
       sptrBlurShaderProgram->setUniform("blurRadius", 0.0F, 1.0F / (windowHeight >> 1), blurRadius);
       glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, nullptr);
       sptrFinalFrameBuffer->enable();
       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
       sptrBloomShaderProgram->enable();
       glBindTexture(GL_TEXTURE_2D, sptrFrameBufferThree->getColorTexture().getTexture());
       glActiveTexture(GL_TEXTURE1);
       glBindTexture(GL_TEXTURE_2D, sptrFrameBufferTwo->getColorTexture().getTexture());
       sptrBloomShaderProgram->setUniform("defaultTexture", 0);
       sptrBloomShaderProgram->setUniform("brightpassTexture", 1);
       glViewport(0, 0, windowWidth, windowHeight);
       glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, nullptr);
       glBindFramebuffer(GL_FRAMEBUFFER, 0);
    }

    jangolare, 07 Июля 2015

    Комментарии (47)
  9. C++ / Говнокод #18440

    +64

    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
    XmlWriter<xhtml11::XHtmlDocument>(stream)
    <html
      <head
        <title
          <"Hello world!"
        >title
      >head
      <body
        <p
          <"Some nice paragraph text."
        >p
        <img(src="http://example.com/hello.jpg",alt="Hello")>img
      >body
    >html;

    кресты в квадрате. любителям темплейтов посвящается.

    http://www.vandenoever.info/blog/2015/07/05/literal-xml-in-c++.html

    Creating and processing XML feels awkward in most programming languages. With Blasien, a tiny C++11 header library, XML in C++ feels easy and natural. As an extra the XML that is written is mostly validated at compile time.

    Dummy00001, 06 Июля 2015

    Комментарии (56)
  10. C++ / Говнокод #18416

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var::var (double initial) {
        (*this) = initial;
    }
    var::var (char *initial) {
        (*this) = initial;
    }

    С воландесайта.http://habrahabr.ru/post/261351

    roman-kashitsyn, 29 Июня 2015

    Комментарии (6)