ar
Feedback
Постироничные идеи для ебаного C++

Постироничные идеи для ебаного C++

الذهاب إلى القناة على Telegram
241
المشتركون
لا توجد بيانات24 ساعات
لا توجد بيانات7 أيام
لا توجد بيانات30 أيام
أرشيف المشاركات
Возможности, потерянные в fmtlib по дороге к стандартизации.
template<typename T>
struct fmt::formatter<std::optional<T>>: formatter<T> {
  using formatter<T>::parse;
  auto format(const std::optional<T>& opt, format_context& ctx) const {
    if (opt.has_value()) {
      format_to(ctx.out(), "Some(");
      this->formatter<T>::format(opt value(), ctx);
      return format_to(ctx.out(), ")");
    } else {
      return format_to(ctx.out(), "None");
    }
  }
};

#include <algorithm>
#include <fmt/format.h>

int main() {
  {
    auto [low, high] = std::minmax({20, 10});
    fmt::println("{} < {}", low, high);
  }
  {
    auto [low, high] = std::minmax(20, 10);
    fmt::println("{} < {}", low, high);
  }
}
$ g++-14 minmax.cpp -O3 -lfmt -o minmax 
$ ./minmax
10 < 20
0 < 0
$

прийти на сходку
Anonymous voting

Уважаемые подписчики этого паблика, в связи с достижением числа (или количества ?) подписчиков равного 98, анонсируем первую сходку! Когда: предположительно 7-8 сентября Где: предположительно Failover bar (4-я Советская улица, дом 7, Санкт-Петербург) P.S: Возможно что-то поменяется, поэтому это сообщение будет апдейтиться. P.P.S: Следующая сходка на 2003 подписчика, следовательно не скоро, всех ждем.

auto mymalloc(std::size_t sz) -> void* {
  return ::operator new(sz, std::nothrow);
}

std-expected.mp31.21 KB

Известно, что std::runtime_error владеет строкой, которую копирует в себя при создании и вид на которую возвращает метод what(). Также известно, что std::runtime_error копируемый, причём конструктор копии и оператор присваивания копии у него noexcept, как и остальные методы. Если бы это было не так, std::runtime_error как часть механизма исключений был бы намного менее полезным. Но как можно копировать владеемую строку с nothrow-гарантией? std::basic_string так не умеет. Реализации std::runtime_error вынуждены реализовать и хранить строку с подсчётом ссылок. Публичного такого класса в STL нет. (Раньше в libstdc++ была такая std::string, но C++11 запретил такую реализацию.) Поэтому если вам для прикладных целей нужна иммутабельная строка с подсчётом ссылок, то:
struct Refcount_str: private std::runtime_error {
  using std::runtime_error::runtime_error;
  using std::runtime_error::operator=;
  ~Refcount_str() override = default;

  const char* c_str() const noexcept {
    return what();
  }

  char operator[] (std::ptrdiff_t i) const noexcept {
    return what()[i];
  }
};

В C ключевое слово fortran означает совместимую с Фортраном линковку. В Фортране буква C в начале строки означает комментарий.

sudo ln /usr/bin/clang /usr/bin/gcc

#постироник_поясняет https://youtu.be/_fu0gx-xseY?si=AHHplmoJ-xa4jKP6 Автор Гор Нишанов. Horus латинская версия имени египетского бога Гора

using T = std::iter_value_t<decltype(iovecs_.begin())>;
if constexpr(std::is_same_v<std::vector<T>, decltype(iovecs_)>) {
auto* ptr =reinterpret_cast<T*>(iovecs_.begin());
}

&*iovecs_.begin()

auto(*foo)(size_t)->void* {
    malloc  //
};

Repost from Random Rust Dev
Когда надоело говорить "боровить", говори "реквизировать"
Когда надоело говорить "боровить", говори "реквизировать"