Tenho o seguinte código:
void check_portvalue(std::string_view value)
{
[[maybe_unused]] port_t test {value};
}
O objeto test
permanece sem uso, mas a criação serve como uma verificação, porque o construtor pode lançar. O [[maybe_unused]]
atributo suprime o aviso do compilador.
Mas já que o compilador detecta que isso não é utilizado, ele poderia otimizar a instrução inteira e assim evitar que a exceção fosse lançada?