\doxysection{composition\+\_\+decorator\+\_\+abstract.\+h}
\hypertarget{composition__decorator__abstract_8h_source}{}\label{composition__decorator__abstract_8h_source}\index{src/composition/include/fourdst/composition/decorators/composition\_decorator\_abstract.h@{src/composition/include/fourdst/composition/decorators/composition\_decorator\_abstract.h}}
\mbox{\hyperlink{composition__decorator__abstract_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00001}00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00002}00002\ }
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00003}00003\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{atomic_species_8h}{fourdst/atomic/atomicSpecies.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00004}00004\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{composition__abstract__iterator_8h}{fourdst/composition/iterators/composition\_abstract\_iterator.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00005}00005\ }
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00006}00006\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{composition__abstract_8h}{fourdst/composition/composition\_abstract.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00007}00007\ }
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00008}00008\ \textcolor{preprocessor}{\#include\ <utility>}}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00009}00009\ \textcolor{preprocessor}{\#include\ <set>}}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00010}00010\ \textcolor{preprocessor}{\#include\ <unordered\_map>}}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00011}00011\ \textcolor{preprocessor}{\#include\ <map>}}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00012}00012\ \textcolor{preprocessor}{\#include\ <vector>}}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00013}00013\ }
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00014}00014\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst::composition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00015}00015\ }
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00016}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator}{00016}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a115e0c194a3dffddc558e0305cc56677}{CompositionDecorator}}:\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract}{CompositionAbstract}}\ \{}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00017}00017\ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00018}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a115e0c194a3dffddc558e0305cc56677}{00018}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a115e0c194a3dffddc558e0305cc56677}{CompositionDecorator}}(std::unique\_ptr<CompositionAbstract>\ decorator)\ :\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}(std::move(decorator))\ \{\};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00019}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a811e91b7cc08f19b8c92de43fdb91401}{00019}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a811e91b7cc08f19b8c92de43fdb91401}{contains}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\ \&species)\ \textcolor{keyword}{const}\ \textcolor{keyword}{noexcept}\ \textcolor{keyword}{override}\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>contains(species);\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00020}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_af40ce87fce6fc0fae837bf8f31fec274}{00020}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_af40ce87fce6fc0fae837bf8f31fec274}{contains}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>contains(symbol);\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00021}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_af70b703b6b946d959cdd5cd15e853a9d}{00021}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_af70b703b6b946d959cdd5cd15e853a9d}{size}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>size();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00022}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a85acea9a107432dfefcbfffe4c3c7c62}{00022}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::set<std::string>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a85acea9a107432dfefcbfffe4c3c7c62}{getRegisteredSymbols}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getRegisteredSymbols();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00023}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a0cdc50a57e09bf8461839d08eb4ae212}{00023}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keyword}{const}\ std::vector<atomic::Species>\ \&\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a0cdc50a57e09bf8461839d08eb4ae212}{getRegisteredSpecies}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getRegisteredSpecies();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00024}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a8c1a4cd69465ef5b65bea547ed919ca5}{00024}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::unordered\_map<atomic::Species,\ double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a8c1a4cd69465ef5b65bea547ed919ca5}{getMassFraction}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getMassFraction();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00025}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a66724877d66017bac3dc3cc784dda57c}{00025}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::unordered\_map<atomic::Species,\ double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a66724877d66017bac3dc3cc784dda57c}{getNumberFraction}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getNumberFraction();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00026}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a52591cb38ab7712fc459eeb48b9d2eaf}{00026}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a52591cb38ab7712fc459eeb48b9d2eaf}{getMassFraction}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getMassFraction(symbol);\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00027}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a12a5cdb232ce4ce30980a016d20b4a43}{00027}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a12a5cdb232ce4ce30980a016d20b4a43}{getMassFraction}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\&\ species)\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getMassFraction(species);\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00028}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a0ff3454e625043c76131a1206d9293c6}{00028}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a0ff3454e625043c76131a1206d9293c6}{getNumberFraction}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getNumberFraction(symbol);\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00029}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a92c3d23d632f242e8b5526b343617f67}{00029}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a92c3d23d632f242e8b5526b343617f67}{getNumberFraction}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\&\ species)\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getNumberFraction(species);\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00030}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a0c46d440cafd9ae2d04589ece5fd41fb}{00030}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a0c46d440cafd9ae2d04589ece5fd41fb}{getMolarAbundance}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getMolarAbundance(symbol);\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00031}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a57a1cc37e96234477b21866881fbdbaa}{00031}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a57a1cc37e96234477b21866881fbdbaa}{getMolarAbundance}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\&\ species)\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getMolarAbundance(species);\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00032}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a3b8f0f8fd75888d001177deff39f7405}{00032}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a3b8f0f8fd75888d001177deff39f7405}{getMeanParticleMass}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getMeanParticleMass();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00033}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a39f1df55aff6650c653e62c0e9a2cc5e}{00033}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a39f1df55aff6650c653e62c0e9a2cc5e}{getElectronAbundance}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getElectronAbundance();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00034}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a4d2795fa73ec3f5185232d4cca5684a6}{00034}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a4d2795fa73ec3f5185232d4cca5684a6}{getMassFractionVector}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getMassFractionVector();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00035}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a72ffd49c3b3e7f3f22ed28ceb2169cb5}{00035}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a72ffd49c3b3e7f3f22ed28ceb2169cb5}{getNumberFractionVector}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getNumberFractionVector();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00036}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a80e528239b4a197985e6993c8b6dab48}{00036}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a80e528239b4a197985e6993c8b6dab48}{getMolarAbundanceVector}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getMolarAbundanceVector();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00037}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a9b7e6388d9a73c05ddd34660bde43867}{00037}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a9b7e6388d9a73c05ddd34660bde43867}{getSpeciesIndex}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getSpeciesIndex(symbol);\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00038}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_ab02b459d8ce7f36a0a1c6058c013a75c}{00038}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_ab02b459d8ce7f36a0a1c6058c013a75c}{getSpeciesIndex}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\&\ species)\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getSpeciesIndex(species);\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00039}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a996066b4bf67e415eb2dd3ea7aed68bd}{00039}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a996066b4bf67e415eb2dd3ea7aed68bd}{getSpeciesAtIndex}}(\textcolor{keyword}{const}\ \textcolor{keywordtype}{size\_t}\ index)\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>getSpeciesAtIndex(index);\ \}}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00040}00040\ }
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00041}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a34e7e9fd25cd4037ba359bc7a7236929}{00041}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{classfourdst_1_1composition_1_1detail_1_1_composition_iterator}{detail::CompositionIterator<false>}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a34e7e9fd25cd4037ba359bc7a7236929}{begin}}()\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>begin();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00042}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_aaf47cdfcb7feb3991d6e151bbf2521ff}{00042}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{classfourdst_1_1composition_1_1detail_1_1_composition_iterator}{detail::CompositionIterator<false>}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_aaf47cdfcb7feb3991d6e151bbf2521ff}{end}}()\textcolor{keyword}{\ override\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}}-\/>end();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00043}00043\ }
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00044}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a125e06aaf1edfd035d7d102792a120d5}{00044}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{classfourdst_1_1composition_1_1detail_1_1_composition_iterator}{detail::CompositionIterator<true>}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a125e06aaf1edfd035d7d102792a120d5}{begin}}()\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ std::as\_const(*m\_base\_composition).begin();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00045}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a56d0561c510efa577dc9a295174827ec}{00045}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{classfourdst_1_1composition_1_1detail_1_1_composition_iterator}{detail::CompositionIterator<true>}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a56d0561c510efa577dc9a295174827ec}{end}}()\textcolor{keyword}{\ const\ override\ }\{\ \textcolor{keywordflow}{return}\ std::as\_const(*m\_base\_composition).end();\ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00046}00046\ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00047}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{00047}}\ \ \ \ \ \ \ \ \ std::unique\_ptr<CompositionAbstract>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a785a5aeddcc68ce3a5b688d956c4d505}{m\_base\_composition}};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00048}00048\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition__decorator__abstract_8h_source_l00049}00049\ \}}

\end{DoxyCode}
