std::move for const values is NO-OP, so it makes sense to generate an additional note about this (similar to bugprone-use-after-move):
void simpleConst(const A a) { A other_a = std::move(a); // note: variable 'a' declared const here a.foo(); // note: 'a' used after it was moved; move of a 'const' argument has no effect [bugprone-use-after-move] }
Anyway, redundant std::move for consts can also be found with performance-move-const-arg check.
Drop the top-level const and make it an integer type so that you don't need to use the ?: below. The implicit conversion will do the right thing in terms of the integer value.