17 : message(
std::move(message_)) {}
19 template<
typename T,
typename... Args>
20 requires(!std::same_as<MSXException, std::remove_cvref_t<T>>)
22 : message(
strCat(std::forward<T>(
t), std::forward<Args>(args)...))
26 [[nodiscard]]
const std::string&
getMessage() const & {
return message; }
27 [[nodiscard]] std::string
getMessage() && {
return std::move(message); }
37 : message(
std::move(message_)) {}
39 template<
typename T,
typename... Args>
40 requires(!std::same_as<FatalError, std::remove_cvref_t<T>>)
42 : message(
strCat(std::forward<T>(
t), std::forward<Args>(args)...))
46 [[nodiscard]]
const std::string&
getMessage() const & {
return message; }
47 [[nodiscard]] std::string
getMessage() && {
return std::move(message); }
FatalError(T &&t, Args &&... args)
std::string getMessage() &&
const std::string & getMessage() const &
FatalError(std::string message_)
MSXException(std::string message_)
std::string getMessage() &&
const std::string & getMessage() const &
MSXException(T &&t, Args &&... args)
This file implemented 3 utility functions: