Size: a a a

2020 May 04

SE

Stanislav Ershov in pro.cxx
 ‌‌Gleb Pilipets
Может кто-то посоветует какую-то лёгкую persistent key-value storage, если использовали?
источник

Dv

Dr. Friedrich von Ne... in pro.cxx
Пожалуйте в @supapro
источник

B

Bogdan in pro.cxx
 ‌‌Gleb Pilipets
А можно ещё такой вопрос задать. Если я буду много раз записывать на одни и те же адреса памяти, то память может выйти из строя физически. Для этого желательно использовать отображение на разные адреса, но как это правильно сделать? Может, есть что-то готовое для С++?

Чтобы не писать постоянно на адреса 0-100, например, когда под программу выделено 0-1000.

Может, какие-то темы, библиотеки, статьи можете посоветовать?
Лол, не о том беспокоишься.

Если ты про оперативку тотмаксимум перегрев.

И то это забота ОС мапинг га реальную память.


Если таки ембедед, то есть ограничение на кво записей в флешку, EEPROM
источник

A

Alex in pro.cxx
В static_assert работает short-circuit evaluation?
источник

A

Alex in pro.cxx
похоже, что в MSVC да, а в GCC нет
Upd: Да, static_assert(true || ill_formed_expression) писать нельзя, но MSVC это компилит даже с permissive-, поэтому пока в GCC или clang не скомпилишь, ошибку не увидишь.
источник

v

vehlwn in pro.cxx
Alex
В static_assert работает short-circuit evaluation?
Боян. Это называется зависимый фолзе.
источник

A

Alex in pro.cxx
нет, речь не о том
источник

v

vehlwn in pro.cxx
Alex
похоже, что в MSVC да, а в GCC нет
Upd: Да, static_assert(true || ill_formed_expression) писать нельзя, но MSVC это компилит даже с permissive-, поэтому пока в GCC или clang не скомпилишь, ошибку не увидишь.
Что значит компилит? ill_formed_expression эвалюируется в труе?
источник

A

Alex in pro.cxx
нельзя написать static_assert(true_condition || ill_formed_if_first_term_is_true), но в MSVC можно, потому что он вообще не компилит второй терм, если первый был true. Но по стандарту должен компилить и выдавать ошибку компиляции.
источник

A

Alex in pro.cxx
нужно писать if constexpr (!true_condition) static_assert(ill_formed_if_first_term_is_true);
источник

v

vehlwn in pro.cxx
Alex
нельзя написать static_assert(true_condition || ill_formed_if_first_term_is_true), но в MSVC можно, потому что он вообще не компилит второй терм, если первый был true. Но по стандарту должен компилить и выдавать ошибку компиляции.
А в констекспр ифе компилит?
источник

A

Alex in pro.cxx
уже ответил) нет, это правильный способ
источник

v

vehlwn in pro.cxx
Alex
нельзя написать static_assert(true_condition || ill_formed_if_first_term_is_true), но в MSVC можно, потому что он вообще не компилит второй терм, если первый был true. Но по стандарту должен компилить и выдавать ошибку компиляции.
Вместо слова статик ассерт напиши констекспр иф.
источник

A

Alex in pro.cxx
Ну мне ж нужен в итоге нужен всё-таки assert. Поэтому правильный вариант - как я написал. Но я долго не мог вдуплить, в чём ошибка.
источник

SS

Sergey Sobolev in pro.cxx
Alex
нельзя написать static_assert(true_condition || ill_formed_if_first_term_is_true), но в MSVC можно, потому что он вообще не компилит второй терм, если первый был true. Но по стандарту должен компилить и выдавать ошибку компиляции.
static_assert(true_condition);
static_assert(ill_formed_if_first_term_is_true);
источник

A

Alex in pro.cxx
так нельзя
источник

v

vehlwn in pro.cxx
https://godbolt.org/z/a6dtyQ
Значит это баг вижака. Он должен вычислять все, что не зависит от Т.
источник

A

Alex in pro.cxx
та ото ж, я так и написал, что баг. Третий пункт в моём списке причин, по которым работающий в MSVC код не компилится другими компиляторами.
источник

Dv

Dr. Friedrich von Ne... in pro.cxx
Alex
та ото ж, я так и написал, что баг. Третий пункт в моём списке причин, по которым работающий в MSVC код не компилится другими компиляторами.
А какие ещё причины есть?
источник

A

Alex in pro.cxx
В некоторых контекстах MSVC считает dependent name именем типа без ключевого слова typename, поэтому можно забыть его написать и не заметить. Висит репорт в баг трекере, но пока что всем пофиг.
источник