Не уверен, что этот вопрос относится к простому С++ или конкретной библиотеке. Я хочу знать, изменяют ли функции, которые возвращают код успеха и выводят свой результат по переданной ссылке, выходную ссылку в случае сбоя?
Используемая библиотека CGAL
using namespace PMP = CGAL::Polygon_mesh_processing;
Mesh out;
bool valid_union = PMP::corefine_and_compute_union(mesh1, mesh2, out);
Вы пытались найти ответ в документации библиотеки? В противном случае этот вопрос лучше задать на страницах поддержки библиотеки.
Я чувствую, что это специфично для библиотеки. Почему ответчик указывает, что С++ не будет изменять ссылки, некоторые библиотеки будут устанавливать значения 0 (или что-то еще), если вызов завершится ошибкой, поэтому вы не пытаетесь использовать переменные.
Нет ничего особенного в возвращении значения true или false из функции; то есть, возвращает ли ваша функция успех или неудачу, не имеет значения, изменила ли она аргументы:
bool do_something(int& a, int& b) {
a += ++b;
return false;
}
все еще меняет a
и b
, независимо от того, return false
вы или return true
.
Следовательно, автор этой функции решил, когда писал эту функцию. Я надеюсь, что они задокументировали то, что они делают!
Спасибо за ответ, это я просто хотел узнать. Так что никаких условностей или языковых ограничений (по-моему не было, но на всякий случай) чтобы не загубить выходы.
Что говорит вам документация для
corefine_and_compute_union
?