Size: a a a

2020 August 22

D

Danya in supapro.cxx
Ilia Zviagin
Ну там между запятыми наверное должны быть выражения
Препроцессору должно быть все равно
источник

IZ

Ilia Zviagin in supapro.cxx
Егор
взглянь на std::conditional и if constexpr
If constexpr тут при чем?
источник

Е

Егор in supapro.cxx
Ilia Zviagin
If constexpr тут при чем?
внутри методов как логику разделять?
источник

IZ

Ilia Zviagin in supapro.cxx
Danya
Препроцессору должно быть все равно
Ну, нет...  В случае с обычными макросами ему не все равно, думать и тут тоже
источник

IZ

Ilia Zviagin in supapro.cxx
Егор
внутри методов как логику разделять?
Просто IF
источник

Е

Егор in supapro.cxx
Ilia Zviagin
Просто IF
шо
if constexpr (std::is_pointer_v<T>) 
 return *t;
else
return t

Как это обычным ифом заменить можно
источник

AP

Alexander Potapov in supapro.cxx
Danya
Так
Мне нужен макрос по типу
RUN_CODE_IF_CPP20({
 /// multiline code
})

Нормальное ли вот такое определение этого макроса:
#if CPP20
 #define RUN_CODE_IF_CPP20(...) int main()  __VA_ARGS__
#else
 #define RUN_CODE_IF_CPP20(...) int main() {}
#endif
Вроде можно писать RUN(( code )) и тогда запятые будут адекватно парсится
источник

D

Danya in supapro.cxx
Егор
шо
if constexpr (std::is_pointer_v<T>) 
 return *t;
else
return t

Как это обычным ифом заменить можно
Никак
источник

IZ

Ilia Zviagin in supapro.cxx
Егор
шо
if constexpr (std::is_pointer_v<T>) 
 return *t;
else
return t

Как это обычным ифом заменить можно
А там другой if должен быть
источник

Е

Егор in supapro.cxx
Ilia Zviagin
А там другой if должен быть
у нас в зависимости от типа должен вызыватся разный код, что кроме свинае или аналогов может тут помочь?
источник

AP

Alexander Potapov in supapro.cxx
зачем там логика разыменования указателя
источник

AP

Alexander Potapov in supapro.cxx
Если тип любой, то особо ничего не проверишь
источник

Е

Егор in supapro.cxx
Егор
шо
if constexpr (std::is_pointer_v<T>) 
 return *t;
else
return t

Как это обычным ифом заменить можно
а хотя да это не сработает
источник

D

Danya in supapro.cxx
Егор
а хотя да это не сработает
Почему?
источник

Е

Егор in supapro.cxx
Danya
Почему?
в обоих ветках должны быть валидные выражения

А не, работает, я совсем запутався, это как депенденд фалсе?
источник

IZ

Ilia Zviagin in supapro.cxx
Егор
у нас в зависимости от типа должен вызыватся разный код, что кроме свинае или аналогов может тут помочь?
Я уже сказал, выше, обычный IF.
У тебя вариант должен работать в рантайме для всех возможных типов, а не для одного. Попеременно, но для всех сразу.
источник

IZ

Ilia Zviagin in supapro.cxx
Егор
в обоих ветках должны быть валидные выражения

А не, работает, я совсем запутався, это как депенденд фалсе?
Это как раз не беда, ты можешь написать пустое выражение
источник

CD

Constantine Drozdov in supapro.cxx
Егор
в обоих ветках должны быть валидные выражения

А не, работает, я совсем запутався, это как депенденд фалсе?
молодой человек, у вас каша в голове
источник

CD

Constantine Drozdov in supapro.cxx
Royle
Привет Всем!
Zadaniye«Давайте теперь попробуем реализовать вариантный тип, позволяющий хранить произвольные типы данных. При этом, для простых типов размером <=16 байт, хранение должно осуществляться в самом объекте. Во всех остальных случаях должен храниться указатель. При этом должна быть реализована логика работы "умных указателей".« Подскажите пожалуйста, по материалам, что мне поможет это реализовать?
Задача плохо определена. Это, конечно, семейство std::any, но какой из них?
источник

AF

Aidar Fattakhov in supapro.cxx
Constantine Drozdov
Задача плохо определена. Это, конечно, семейство std::any, но какой из них?
тот который boost::variant
источник