Если ваш C-код также может быть скомпилирован в режиме C ++, вы можете использовать флаг предупреждения g ++ -Wold-style-cast
, чтобы вызвать предупреждение для всех таких приведений.
Вы можете определить, есть ли у Клана какие-либо предупреждения, которые будут триггер для конкретного шаблона кодирования с помощью его переключателя -Weverything
(но обратите внимание, что это не полезно практически для любой другой цели - clang имеет предупреждения по умолчанию, которые запускаются на различных формах законного кода). Однако в этом случае у clang нет никаких предупреждений, вызывающих такие отбрасывания.
Избегайте варианта 2, как вы указали, это не очень хорошая идея. Многие фреймворки API не позволят вам это сделать.
Что касается двух других вариантов - я не думаю, что есть что-то плохое в том, чтобы иметь действительно длинный URL, это может выглядеть уродливо, но, по крайней мере, вы получаете все преимущества GET (идемпотентность, ясность, возможность закладок). Попробуйте заставить его работать с этой опцией и, возможно, рассмотрите некоторые обходные пути, если это возможно.
Но, в конце концов, не бойтесь переходить на POST, если вам это действительно нужно. Это не идеально, иногда вы не можете обойтись без нарушения правил.