Size: a a a

2020 July 29

D

Danya in supapro.cxx
Aidar Fattakhov
Понял почему?
Оно не компилируется если два раза)
источник

AF

Aidar Fattakhov in supapro.cxx
Danya
Оно не компилируется если два раза)
Дык оно и так не компилируется
источник

LA

Liber Azerate in supapro.cxx
Vlad Serebrennikov
а есть смысл их сравнивать? этот механизм доступен лишь в constant evaluation
в рантайме ничего не изменилось
Я просто банально не понимаю. При вызове виртуальной функции там куча лишних операций с таблицей виртуальных функций(да-да, её не существует). В компайл тайме просто берётся информация, известная компилятору, безо всяких там лишних таблиц? Вообще не понимаю
источник

D

Danya in supapro.cxx
Aidar Fattakhov
Дык оно и так не компилируется
А я наверное понял про что ты, позже проверю
источник

Е

Егор in supapro.cxx
Danya
А я наверное понял про что ты, позже проверю
источник

VS

Vlad Serebrennikov in supapro.cxx
Liber Azerate
Я просто банально не понимаю. При вызове виртуальной функции там куча лишних операций с таблицей виртуальных функций(да-да, её не существует). В компайл тайме просто берётся информация, известная компилятору, безо всяких там лишних таблиц? Вообще не понимаю
да
источник

DP

Denis Paukaev in supapro.cxx
Danya
Я пишу концепты
И мне надо проверить что у типа есть static constexpr member variable типа bool
Есть какие-нибудь красивые способы это проверить?
А то пока у меня приходят в голову не самый красивые варианты
1) Написать: concept ... = (T::foo || !T::foo)
2) Написать dummy шаблон
template <typename T, T value>
constexpr bool is_constexpr_expr = true;
...
concept ... = is_constexpr_expr<bool, T::foo>;
struct S {
   static const int foo{};
};

constexpr auto k = S::foo;


как же ты их интересно собрался различать )
источник

AF

Aidar Fattakhov in supapro.cxx
Aidar Fattakhov
Там надо 2 раза requires наверное
Тебе нужен clause или expression?
источник

LA

Liber Azerate in supapro.cxx
В общем, это просто название – виртуальные функции и т.д. в компалтайме, но начинка другая. Ясно, спасибо
источник

VS

Vlad Serebrennikov in supapro.cxx
Liber Azerate
В общем, это просто название – виртуальные функции и т.д. в компалтайме, но начинка другая. Ясно, спасибо
виртуальные функции всегда были про поведение, а не про vtable. тот самый случай, когда их не стоит отождествлять, потому что на этапе компиляции есть лучшие способы реализовать это поведение
источник

LA

Liber Azerate in supapro.cxx
Vlad Serebrennikov
виртуальные функции всегда были про поведение, а не про vtable. тот самый случай, когда их не стоит отождествлять, потому что на этапе компиляции есть лучшие способы реализовать это поведение
Да, уточка, я понял.
источник

RZ

Ruslan Zuckerbrin in supapro.cxx
Ruslan Zuckerbrin
Как перевести массив в std::string?
То есть, у меня, допустим, есть uint16_t arr[32]. Я хочу получить std::string, в котором каждый элемент массива представлен в строчном формате.
А как сделать то же самое, только чтобы в hex отразилось?
источник

DP

Denis Paukaev in supapro.cxx
Ruslan Zuckerbrin
А как сделать то же самое, только чтобы в hex отразилось?
ввести этот вопрос в гугл, например:

https://stackoverflow.com/questions/5100718/integer-to-hex-string-in-c

и добавить к этому итерацию по массиву
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Danya
Мне нужна операция взятия этой переменной в компайл тайме)
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Denis Paukaev
struct S {
   static const int foo{};
};

constexpr auto k = S::foo;


как же ты их интересно собрался различать )
Очевидно, ему нужно constant expression, не обязательно constexpr
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Danya
Мне нужна операция взятия этой переменной в компайл тайме)
Ты сам же и написал, как это проверить
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Artöm Bakri Al-Sarmini
requires {
   constexpr bool b = T::foo;
}
Это говно не работает, потому что выражения можно, а операторы нельзя
источник

AF

Aidar Fattakhov in supapro.cxx
Artöm Bakri Al-Sarmini
Это говно не работает, потому что выражения можно, а операторы нельзя
Ну можно передавать в шаблон
источник

DP

Denis Paukaev in supapro.cxx
template<auto = 100500>
using Dummy = int;

template<typename T>
concept is_foo_const = std::is_same_v< Dummy<T::foo>, Dummy<> >;
источник

AF

Aidar Fattakhov in supapro.cxx
Denis Paukaev
template<auto = 100500>
using Dummy = int;

template<typename T>
concept is_foo_const = std::is_same_v< Dummy<T::foo>, Dummy<> >;
Слишком сложно
источник