Актер должен сделать трюк; который говорит «явно превращать этот тип в этот тип», что, как правило, довольно глупо для компилятора предупреждать:
int curPos = static_cast<int>(ceil(float(newMouseY / font.getLineHeight())));
Или:
outputChars[0] = static_cast<char>(uc);
Удостоверьтесь, что приведенные вами слепки сродни этому. Вы говорите: «Я пытался ... (float)
», и это заставляет меня поверить, что вы пробовали что-то вроде этого:
int curPos = (float)(ceil(float(newMouseY / font.getLineHeight())));
Который ничего не делает. Тип выражения уже float
, что будет делать приведение к тому же типу? Вам нужно привести его к типу получателя.
Имейте в виду, что забастовок обычно следует избегать. В вашем первом фрагменте приведение является разумным, потому что когда вы квантуете что-то, вам обязательно нужно отбросить информацию.
Но ваш второй актерский состав - нет. Почему uc
a size_t
на первом месте? Что происходит, когда актер пропускает информацию? Это действительно хорошая идея?