\doxysection{exceptions\+\_\+composition.\+h}
\hypertarget{exceptions__composition_8h_source}{}\label{exceptions__composition_8h_source}\index{src/composition/include/fourdst/composition/exceptions/exceptions\_composition.h@{src/composition/include/fourdst/composition/exceptions/exceptions\_composition.h}}
\mbox{\hyperlink{exceptions__composition_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00001}00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00002}00002\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00003}00003\ \textcolor{preprocessor}{\#include\ <exception>}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00004}00004\ \textcolor{preprocessor}{\#include\ <string>}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00005}00005\ \textcolor{preprocessor}{\#include\ <utility>}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00006}00006\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00007}\mbox{\hyperlink{namespacefourdst_1_1composition_1_1exceptions}{00007}}\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition_1_1exceptions}{fourdst::composition::exceptions}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00015}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error}{00015}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ab5c761cc309f8b813bcb45d2dbceace8}{CompositionError}}\ :\ \textcolor{keyword}{public}\ std::exception\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00016}00016\ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00020}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_a4cd69d727a162f90045cd6d4aaf95440}{00020}}\ \ \ \ \ \ \ \ \ std::string\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_a4cd69d727a162f90045cd6d4aaf95440}{m\_message}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00021}00021\ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00026}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ab5c761cc309f8b813bcb45d2dbceace8}{00026}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ab5c761cc309f8b813bcb45d2dbceace8}{CompositionError}}(std::string\ \ message)}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00027}00027\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_a4cd69d727a162f90045cd6d4aaf95440}{m\_message}}(std::move(message))\ \{\}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00028}00028\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00033}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ae44ceddb19da8a8cda7ee150b6826d08}{00033}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ae44ceddb19da8a8cda7ee150b6826d08}{what}}()\ const\ noexcept\textcolor{keyword}{\ override}\{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00034}00034\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_a4cd69d727a162f90045cd6d4aaf95440}{m\_message}}.c\_str();}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00035}00035\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00036}00036\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00037}00037\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00042}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{00042}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{InvalidCompositionError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error_ab5c761cc309f8b813bcb45d2dbceace8}{CompositionError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00043}00043\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ab5c761cc309f8b813bcb45d2dbceace8}{CompositionError::CompositionError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00044}00044\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00045}00045\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00052}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}{00052}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}{UnregisteredSymbolError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error_ab5c761cc309f8b813bcb45d2dbceace8}{CompositionError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00053}00053\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ab5c761cc309f8b813bcb45d2dbceace8}{CompositionError::CompositionError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00054}00054\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00055}00055\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00060}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error}{00060}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_aa8f82f842c896cf5253871a59538000a}{SpeciesError}}\ :\ \textcolor{keyword}{public}\ std::exception\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00061}00061\ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00062}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_a07a424e42edd368e6fb5113655ab6d1e}{00062}}\ \ \ \ \ \ \ \ \ std::string\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_a07a424e42edd368e6fb5113655ab6d1e}{m\_message}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00063}00063\ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00064}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_aa8f82f842c896cf5253871a59538000a}{00064}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_aa8f82f842c896cf5253871a59538000a}{SpeciesError}}(std::string\ \ message)}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00065}00065\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_a07a424e42edd368e6fb5113655ab6d1e}{m\_message}}(std::move(message))\ \{\}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00066}00066\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00067}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_af0c63f7e05d0c65157b960c654d09b67}{00067}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_af0c63f7e05d0c65157b960c654d09b67}{what}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00068}00068\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_a07a424e42edd368e6fb5113655ab6d1e}{m\_message}}.c\_str();}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00069}00069\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00070}00070\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00071}00071\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00078}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error}{00078}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error}{UnknownSymbolError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error_aa8f82f842c896cf5253871a59538000a}{SpeciesError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00079}00079\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_aa8f82f842c896cf5253871a59538000a}{SpeciesError::SpeciesError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00080}00080\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00081}00081\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00082}00082\ \}}

\end{DoxyCode}
