Size: a a a

IT KPI C/C++ ХВ (не UB)

2021 April 01

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
я выиграл
источник

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
Ruslan Neshta
хардкод руками для каждого отдельного случая
Ещё функи по разному назови чтобы в Си экспортить
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
András
оголошую конкурс на найгірше рішення
полностью менять архитектуру для каждого отдельного случая, учитывая все предидущие, но так, чтобы будущие новые случаи не вписывались в текущую новую архитектуру
источник

YS

Y S in IT KPI C/C++ ХВ (не UB)
András
constexpr bool sutisfy(const char* s)
{
   int n = 0;
   while(s[n] != 0)
       n++;
   for(int i = 3; i < n; i++)
       if(s[i-3] == 'c' && s[i-2] == 'h' && s[i-1] == 'a' && s[i] == 'r')
           return true;
   return false;
}

template<typename T>
void _func(T arg)
{
   std::cout << "everythink are OK";
}

#define custom_func(T, arg) (sutisfy(#T) ? _func(arg) : assert((false)))

int main()
{
   custom_func(char, 1);
}
Krange
источник

YS

Y S in IT KPI C/C++ ХВ (не UB)
András
constexpr bool sutisfy(const char* s)
{
   int n = 0;
   while(s[n] != 0)
       n++;
   for(int i = 3; i < n; i++)
       if(s[i-3] == 'c' && s[i-2] == 'h' && s[i-1] == 'a' && s[i] == 'r')
           return true;
   return false;
}

template<typename T>
void _func(T arg)
{
   std::cout << "everythink are OK";
}

#define custom_func(T, arg) (sutisfy(#T) ? _func(arg) : assert((false)))

int main()
{
   custom_func(char, 1);
}
Вместо функций макросы ещё сделай
источник

YS

Y S in IT KPI C/C++ ХВ (не UB)
Тогда шаблоны не нужны, и в си работать будет
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
ладно, ща выдам
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
сделай макросы
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
но эти макросы будут генерить макросы
источник

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
Ruslan Neshta
сделай макросы
Кастом билд степ с скриптухой на питоне
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
и тебе надо будет добавить ещё один обход препроцессора перед компиляцией
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
ага
источник

АП

Антон Пилипчук... in IT KPI C/C++ ХВ (не UB)
kvark
а если сделать перегрузку специально для чар?
namespace std {
 string to_string(char symbol_code) {
   const char kek[2] = {symbol_code, '\0'};
   return string(kek);
 }
}
посидев пару часов нашел решение:
http://coliru.stacked-crooked.com/a/c6fdac9cf41e8a57

сравните с тем что было:
http://coliru.stacked-crooked.com/a/04dd112f6363aaf3
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
пфф, 20 плюсы, так не интересно(((
источник

A

András in IT KPI C/C++ ХВ (не UB)
Alexander Wizaral
пфф, 20 плюсы, так не интересно(((
с++17?
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
András
с++17?
ну как минимум))
источник

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
András
с++17?
98
источник

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
98 > 17 же ежжи
источник

M

MrILL in IT KPI C/C++ ХВ (не UB)
Vlad Doc
98 > 17 же ежжи
биг брейн мув
источник

X

Xlebpyshek in IT KPI C/C++ ХВ (не UB)
Хелпаните плиз, не вдупляю че ему надо...
Необходимый пакет (NuGet) - установлен
источник