Хотя компиляторы, которых я знаю, не имеют для этого вариантов, FlexELint от Gimpel может делать то, что вы хотите:
$ cat tst.c
int main (void)
{
int i = 0, j = 0;
float f = 0.0;
double d = 0.0;
i = (int) f;
j = (int) d;
d = (double) f;
f = (float) d;
i = (int)j;
j = (unsigned) i;
return (int) j;
}
$ flexelint -w1 +e922 tst.c
FlexeLint for C/C++ (Unix) Vers. 9.00j, Copyright Gimpel Software 1985-2012
--- Module: tst.c (C)
_
i = (int) f;
tst.c 7 Note 922: cast from float to int
_
j = (int) d;
tst.c 8 Note 922: cast from double to int
_
d = (double) f;
tst.c 9 Note 922: cast from float to double
_
f = (float) d;
tst.c 10 Note 922: cast from double to float
shell returned 4
Пользователь является зарезервированным ключевым словом T-SQL и не может использоваться просто так - и в любом случае это плохая практика.
Если вы настаиваете на его использовании, то вы должны заключить его в квадратные скобки:
string query = @"INSERT INTO dbo.PrivateUsers([user]) VALUES(@user);";