Size: a a a

2020 June 07

G

Gymmasssorla in rust_offtopic
Вообще что-то вроде

#ifdef __CLANG__ || __GCC__
#define PURE __attribute__((const))
#else
#deine PURE
#endif
источник

G

Gymmasssorla in rust_offtopic
Gymmasssorla
Вообще что-то вроде

#ifdef __CLANG__ || __GCC__
#define PURE __attribute__((const))
#else
#deine PURE
#endif
И PURE int query(...) { ... }
источник

G

Gymmasssorla in rust_offtopic
Да и вообще можно многое с помощью Си-макросов сделать
источник

G

Gymmasssorla in rust_offtopic
Я замыкания с решением funarg upwards problem делал
источник

G

Gymmasssorla in rust_offtopic
Вообще у сишников тоже есть Тьюринг-полный язык. Макросы)
источник

G

Gymmasssorla in rust_offtopic
Ну и тип-суммы тоже, о которых я говорил здесь уже
источник

G

Gymmasssorla in rust_offtopic
Кстати, здесь OBJ - это макрос, выделяющий объект и отдающий ссылку на него прямо на месте
источник

G

Gymmasssorla in rust_offtopic

#define OBJ(...) POICA_P_OBJ_AUX(__VA_ARGS__)

#define POICA_P_OBJ_AUX(value, value_type)                                     \
   (value_type *)(value_type[]) {                                             \
       value                                                                  \
   }
источник

G

Gymmasssorla in rust_offtopic
Вот. То сеть он выделяет массив через составной литерал, но т.к. массив из 1 значения - само значение, то я просто привожу к указателю на это значение
источник

G

Gymmasssorla in rust_offtopic
typedef void *poly;


И можно так:

poly number = OBJ(12 OF int);


)))
источник

G

Gymmasssorla in rust_offtopic
Gymmasssorla
typedef void *poly;


И можно так:

poly number = OBJ(12 OF int);


)))
Т.к. у gcc есть дедукция типов, то можно так сделать ещё:

__auto number = 12;
источник

AZ

Alex Zhukovsky in rust_offtopic
Т-34 85
вот аналог такого на Rust.  Текущий пример не компилится при передаче в constexpr функцию значения меньше 0. При меньше 10 возвращает это же значение, от - его квадрат

#include <iostream>

template <int N>
constexpr int CTFunction()
{
   static_assert (N > 0, "the parameter is nagative, blyat!");

   if constexpr (N >= 10)
   {
       return N * N;
   }
   else
   {
       return N;
   }
}

int main()
{
   constexpr auto result = CTFunction<-4>();
   std::cout << result << std::endl;
   return 0;
}
Трейт со свойством, нет?
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
А кому может не хватить перфоманса жабы?
Доге, мне
источник

AZ

Alex Zhukovsky in rust_offtopic
Я с шарпа переписывал очередную перекладывалку жсонов потому что она с нагрузкой не справлялась
источник

G

Gymmasssorla in rust_offtopic
#define LET __auto_type

int main(void) {
   LET i = 12;
}
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
Я с шарпа переписывал очередную перекладывалку жсонов потому что она с нагрузкой не справлялась
Хз не верится особо
источник

DS

Doge Shibu in rust_offtopic
Alex Zhukovsky
Я с шарпа переписывал очередную перекладывалку жсонов потому что она с нагрузкой не справлялась
Но это скорее проблемы именно ньютонсофта и всех сериализаторов с явными AST на языках с гц
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
Трейт со свойством, нет?
хз
источник

AZ

Alex Zhukovsky in rust_offtopic
Doge Shibu
Но это скорее проблемы именно ньютонсофта и всех сериализаторов с явными AST на языках с гц
Результат один
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
Хз не верится особо
Ну я тебе говорю
источник