Я работаю над созданием достаточно мощного 2D игрового движка в качестве основы, из которой другие игры могут быть построены как забавный проект (я знаю, что уже есть вещи, которые делают это, но это не весело).
Я пытаюсь найти хороший способ передачи сообщений между классами в движке.Сначала я думал об использовании иерархии исключений и их выбрасывании всякий раз, когда что-то требовалось.Но так как я развивался таким образом, я понял, что было выброшено довольно большое количество исключений, так как они использовались для довольно общих вещей (часть подпрограмм, которые обрабатывают поиск пути и определение местоположения, и вещи, которые должны проверять состояниеигровая доска много).Исключения использовались для таких вещей, как поиск пути натолкнулся на единицу в пути, и ему нужно было обойти это, он вызвал бы исключение TileOccupied, и поиск пути мог бы изящно обработать это и продолжить.Как и следовало ожидать, это создало много исключений.
Интернет сказал мне, что исключения являются дорогостоящими из-за всей обработки во время выполнения, которую они должны сделать.Но они прекрасно справляются с тем, что мне нужно, а именно с возможностью передавать сообщение обратно вызывающей стороне даже через подпрограммы ветвления, чтобы указать, когда что-то произошло или что-то не так, как ожидалось.
Есть ли какой-нибудь чистый / эффективный способсделать это в C ++?Или я неправильно структурирую вещи, если использую уведомления такого типа?Я все еще учусь, поэтому любые предложения будут с благодарностью (и я готов прочитать / выучить любые ссылки, которые вы можете мне бросить)
Редактировать Я пытаюсь сделатьэто в стандарте C ++ кстати.Я пишу это на Linux, и хочу, чтобы он компилировался и работал независимо от платформы.В настоящее время я использую Boost в нем.