Почему следующий код компилируется в clang++?
Есть ли какие-либо флагов С++, чтобы это не происходило - я хотел бы, чтобы компилятор выдал ошибку, потому что я передаю std:: uint64_t в качестве аргумента функции, принимающей std:: uint16_t.
#include <cstdint>
using namespace std;
void foo(uint16_t x) {
}
int main() {
uint64_t x = 10000;
foo(x);
return 0;
}