Please consider the following:
#include <functional>
int main() {
std::function<int(int)> f_sq = [](int i) -> int { return i *= i; }; // No warning
auto f_sub = [](int a, int b) -> int { return a - b; }; // -Wunused-but-set-variable
return 0;
}
Why compiler warns when the auto
keyword is used, and/or, in the contrary, why it doesn't when auto
is not used?
clang version 12.0.1
gcc (GCC) 11.1.0
Target: x86_64-pc-linux-gnu (artixlinux)