Кресты / Говнокод #7738 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
template<typename _Tp>
    pair<_Tp*, ptrdiff_t>
    get_temporary_buffer(ptrdiff_t __len)
    {
      const ptrdiff_t __max =
  __gnu_cxx::__numeric_traits<ptrdiff_t>::__max / sizeof(_Tp);
      if (__len > __max)
  __len = __max;
      
      while (__len > 0) 
  {
    _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), 
              std::nothrow));
    if (__tmp != 0)
      return std::pair<_Tp*, ptrdiff_t>(__tmp, __len);
    __len /= 2;                                    // !?!?!?!?!?!?!?!?
  }
      return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
    }

  template<typename _Tp>
    inline void
    return_temporary_buffer(_Tp* __p)
    { ::operator delete(__p, std::nothrow); }

Запостил: CPPGovno CPPGovno, (Updated )

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

  • Похоже на файл, плохо восстановленный реаниматором.
    Ответить
  • Если не удалось выделить сколько нужно, выделим сколько получится. Длина тоже возвращается.
    Ответить
  • Это редко используемая часть стандартной библиотеки C++.
    get_tempoprary_buffer возвращает кусок памяти размером, не превышающим запрошенный. Смысл в том, что вызывающему эту функцию в идеале нужен буфер размера N, но подойдет и буфер поменьше. К примеру, читаем данные из сокета.
    return_temporary_buffer этот буфер освобождает.

    Не говно. Просто не слишком полезная функциональность.
    Ответить
  • п:M.K)U?O)J J$N:R.U$N.R!W,HZ$T(G!G:J.N?L$E?D:G,F(K.L)Y.L?I$K$X Q?T?D?B Q:T,P W?D?G.F G:R!Z:G$UK XM,Q:PA(K"H.U,F,I:V?S"N.E.T:F(T(E?B G?V!E?E(VA.B C"X!E$C U"I.N!O.TD?K,E:JS"J$N"J(F V(W"K(Y.Q.L.X!XL?C$M"Q!Z)N(A,B Q.B!F X:B$H)P(M.A.W.S"S"D(I$U?R!A(E?E)A)B:T?C X"W"L:U?D:Z?J,S"L$B,E,F?N)F I A:G$C?G?R$J)H(GF(U:X"F,W)T:XB.U?S)H$Q)E.T$A(E?Q)XO"X!D.I(T)B$F$R:E(X.H$K?M:O(Q:H,Z(Q(T(S X?C,J.B?L$E.J,N(U:U$G:T,Q KSB"R:L!M"J?V Y!S!JQ(N A Q.Y,X)I)J O,K"B?Z K.B TO,N)B$B.E$OM$F"H"D,I.I?O.EY:Q(NG?A(V,K G?G K!W.D!L)B$V"W,I:K"V,BXW(H(J,T"O:H N)R,J$W,S(T?Z?I)T"V(W,H:LR(M"A(R:X,I Q)A"I.C(R"X:D J?NE"Y$K:K"L,K.B.E$A!E!K.N)JV,B R.I?N.W!E$Z)Z:P$K H,G:W:R J!Z)W:M)K(Q,H?A,Q X?R:B.X U)Y H!D:P W GТAFYLWDMORXBVFQGNCPXKUKQQSHIZKJYANNOZHVFNDNKRIREXMOQPJFSQGACPTUK
    Ответить
  • Он поставил поднос и присел перед кроватью, любуясь спящим Ромкой. Господи! Совсем же ещё несмыслёныш! А он за три дня уже умудрился избить его, отшлёпать и выпороть! Ну кто он после этого?
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8