Из концепции Cvalue, я понял, чтоВ MISRA C++ 2008, кто-нибудь знает, что выражение выражения Cvalue специализировано в правиле 5-0-3?
«Выражение, которое не должно подвергаться дальнейшему преобразованию, явно или неявно, называется выражением cvalue.»
Но с примером, представленным этим правилом.
s32 = static_cast <int32_t> (s8) + s8; // Example 2 - Compliant
s32 = s32 + s8; // Example 3 - Compliant
Очевидно, что правильные выражения сложения происходят неявно и явно конверсиями здесь. И это правило означает их соответствие требованиям. Я думаю, что это противоречит понятию.
Можете вы объяснить или включить ссылку на определение «cvalue» для тех из нас, кто не знаком с MISRA? – Brian
Yeap, как и то, что я сказал, определение «cvalue» - это выражение, которое не должно подвергаться дальнейшим преобразованиям, неявным или явным образом, называется выражением cvalue. '[Misra 2008 compliance] (https: // bpb .opendns.com/а/www.ldra.com/attachments/article/74/MISRA-CPP_2008_COMPLIANCE.pdf? reg = short) –