Size: a a a

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

2021 March 21

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
Ruslan Neshta
вообщем принимай джейсон
источник

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
Tony Lutsenko
Есть ли возможность передавать параметры в функцию, указывая название параметра, который передаётся?
Просто задаёшь параметр шаблона
источник

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
foo<float>(arg);
источник

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
Правда непонятно нахуя если компилятор всё равно выведет тип шаблона из аргумента
источник

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
Vlad Doc
Правда непонятно нахуя если компилятор всё равно выведет тип шаблона из аргумента
Тоесть это имеет смысл только для кастов
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
Tony Lutsenko
Есть ли возможность передавать параметры в функцию, указывая название параметра, который передаётся?
Ты походу про рефлексию заговорил. В плюсах такого нет. Разве что в тех, что в Qt и UE4, но оно тебе не надо
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
И да, придётся передавать строку с названием
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
Tony Lutsenko
Есть ли возможность передавать параметры в функцию, указывая название параметра, который передаётся?
Есть хак, да
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Vlad Doc
Просто задаёшь параметр шаблона
Я имею в виду случай, когда у меня две дюжины параметров по умолчанию, и хочется указать один конкретный, который не обязательно первый в списке
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Проще всего, конечно, сделать структуру или класс, и принимать в функцию именно его
А нужный параметр задавать или в конструкторе, или на строчку выше
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
void func(t1 a1 = 1, t2 a2 = 2, ..., tn an = 'n');

void govnocode(t15 a15, t1 a1 = 1, t2 a2 = 2, ...)
{
func(a1, a2, ..., a15, ...);
}
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Tony Lutsenko
Проще всего, конечно, сделать структуру или класс, и принимать в функцию именно его
А нужный параметр задавать или в конструкторе, или на строчку выше
ахуенно, функтор с публичными аргументами
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
struct func{
void operator()(t1 a1 = 1, t2 a2 = 2, ... tn an = 'n')
{
   m_a1 = m_a1 == a1 ? a1 : m_a1;
   m_a2 = m_a2 == a2 ? a2 : m_a2;
   ...
   m_an = m_an == an ? an : m_an;

   real_func(m_a1, m_a2, ... m_an);
}

t1 m_a1 = 1;
t2 m_a2 = 2;
...
tn m_an = 'n';

private:
void real_func(t1 a1, t2 a2, ... tn an);
};
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
Tony Lutsenko
Я имею в виду случай, когда у меня две дюжины параметров по умолчанию, и хочется указать один конкретный, который не обязательно первый в списке
А ёпта. Designated parameters
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
Но они либо в сишке, либо с 17/20 стандарта плюсов. Вроде даже с 20, что усложняет ситуацию
источник

A

András in IT KPI C/C++ ХВ (не UB)
Alexander Wizaral
Но они либо в сишке, либо с 17/20 стандарта плюсов. Вроде даже с 20, что усложняет ситуацию
з 17 вродь
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
Лучше проверить))
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
Alexander Wizaral
А ёпта. Designated parameters
20ый
источник