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.1gcc (GCC) 11.1.0Target: x86_64-pc-linux-gnu (artixlinux)