value |= static_cast<type_t>(1) << static_cast<type_t>(2 - 1);
warning C4554: '<<' : check operator precedence for possible error; use parentheses to clarify precedence