У меня есть следующий код:предотвратить отливку междунар при вызове функции
void foo(int64_t x) {}
void bar(int64_t* x) {}
int main() {
int32_t a = 3;
foo(a);
bar(&a);
}
Когда я пытаюсь скомпилировать это, он дает ошибку, которая не может конвертировать int32_t*
в int64_t*
, который является то, что я хочу.
Возможно ли получить некоторые подобные ошибки при попытке вызвать foo(a)
?
[Это] (HTTP://coliru.stacked-crooked.com/a/8e3defa4902f44ad)? – LogicStuff
Зачем вам такая ошибка? Как уже упоминалось, это преобразование всегда безопасно. Если вы конвертировали 'int64_t' в' int32_t', вы могли получить ошибку, используя не сужающееся преобразование: 'foo ({a})' – alexeykuzmin0
Чтобы развернуть комментарий @ alexeykuzmin0, что такое * актуальная * проблема что вы пытаетесь решить? [Связанное чтение о проблеме XY] (http://xyproblem.info/). –