Skip to content

Commit 4dad166

Browse files
ax3lWeiqunZhang
andauthored
Doc: AMREX_ENUM Functions (#4764)
Enum Doxygen strings and examples :) --------- Co-authored-by: Weiqun Zhang <[email protected]>
1 parent 80fcecb commit 4dad166

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

Src/Base/AMReX_Enum.H

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,19 @@ namespace detail
6969
return r;
7070
}
7171

72+
/** Convert a string to an enum value
73+
*
74+
* Example:
75+
* ```C++
76+
* AMREX_ENUM(Model,
77+
* linear,
78+
* nonlinear
79+
* );
80+
* std::string const model_str = "nonlinear";
81+
* Model const model = amrex::getEnum<Model>(model_str);
82+
* assert(model == Model::nonlinear);
83+
* ```
84+
*/
7285
template <typename T, typename ET = amrex_enum_traits<T>,
7386
std::enable_if_t<ET::value,int> = 0>
7487
T getEnum (std::string_view const& s)
@@ -88,6 +101,21 @@ namespace detail
88101
}
89102
}
90103

104+
/** Convert a string case insensitive to an enum value
105+
*
106+
* Same as getEnum<T>, but case insensitive match to enum value.
107+
*
108+
* Example:
109+
* ```C++
110+
* AMREX_ENUM(Model,
111+
* linear,
112+
* nonlinear
113+
* );
114+
* std::string const model_str = "NonLinear";
115+
* Model const model = amrex::getEnumCaseInsensitive<Model>(model_str);
116+
* assert(model == Model::nonlinear);
117+
* ```
118+
*/
91119
template <typename T, typename ET = amrex_enum_traits<T>,
92120
std::enable_if_t<ET::value,int> = 0>
93121
T getEnumCaseInsensitive (std::string_view const& s)
@@ -108,6 +136,19 @@ namespace detail
108136
}
109137
}
110138

139+
/** Get a string from an enum value
140+
*
141+
* Example:
142+
* ```C++
143+
* AMREX_ENUM(Model,
144+
* linear,
145+
* nonlinear
146+
* );
147+
* Model model = Model::linear;
148+
* std::string model_str = amrex::getEnumNameString(model);
149+
* assert(model_str == "linear");
150+
* ```
151+
*/
111152
template <typename T, typename ET = amrex_enum_traits<T>,
112153
std::enable_if_t<ET::value,int> = 0>
113154
std::string getEnumNameString (T const& v)

0 commit comments

Comments
 (0)