MRPT
2.0.3
typemeta_TEnumType/test.cpp
/* +------------------------------------------------------------------------+
| Mobile Robot Programming Toolkit (MRPT) |
| https://www.mrpt.org/ |
| |
| Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
| See: https://www.mrpt.org/Authors - All rights reserved. |
| Released under BSD License. See: https://www.mrpt.org/License |
+------------------------------------------------------------------------+ */
/** \example typemeta_TEnumType/test.cpp */
//! [example]
#include <
mrpt/typemeta/TEnumType.h
>
#include <iostream>
#include <string>
// Example declaration of "enum class"
enum class
TestColors
{
Black
= 0,
Gray
= 7,
White
= 15
};
MRPT_ENUM_TYPE_BEGIN
(
TestColors
)
MRPT_FILL_ENUM_MEMBER
(
TestColors
, Black);
MRPT_FILL_ENUM_MEMBER
(
TestColors
, Gray);
MRPT_FILL_ENUM_MEMBER
(
TestColors
, White);
MRPT_ENUM_TYPE_END
()
// Example declaration of plain enum
enum
Directions
{
North
,
East
,
South
,
West
};
// Example declaration of "enum class"
MRPT_ENUM_TYPE_BEGIN
(
Directions
)
MRPT_FILL_ENUM
(
North
);
MRPT_FILL_ENUM
(
East
);
MRPT_FILL_ENUM
(
South
);
MRPT_FILL_ENUM
(
West
);
MRPT_ENUM_TYPE_END
()
void
Test_EnumType
()
{
using namespace
std;
using namespace
mrpt::typemeta
;
cout <<
"White => "
<< (int)
TEnumType<TestColors>::name2value
(
"White"
)
<< endl;
cout <<
"Black => "
<< (int)
TEnumType<TestColors>::name2value
(
"Black"
)
<< endl;
cout <<
"Gray => "
<< (int)
TEnumType<TestColors>::name2value
(
"Gray"
)
<< endl;
cout <<
"7 <= "
<<
TEnumType<TestColors>::value2name
(
TestColors
(7))
<< endl;
}
//! [example]
int
main
(
int
argc
,
char
**
argv
)
{
try
{
Test_EnumType
();
return
0;
}
catch
(
const
std::exception& e)
{
std::cerr <<
"MRPT error: "
<< e.what() << std::endl;
return
-1;
}
}
MRPT_ENUM_TYPE_END
#define MRPT_ENUM_TYPE_END()
Definition:
TEnumType.h:78
mrpt::typemeta
Definition:
config/CConfigFileBase.h:21
South
@ South
Definition:
enumtype_unittest.cpp:32
TestColors::White
@ White
TestColors::Black
@ Black
TestColors
TestColors
Definition:
enumtype_unittest.cpp:14
MRPT_ENUM_TYPE_BEGIN
#define MRPT_ENUM_TYPE_BEGIN(_ENUM_TYPE_WITH_NS)
Definition:
TEnumType.h:62
Directions
Directions
Definition:
enumtype_unittest.cpp:28
TestColors::Gray
@ Gray
East
@ East
Definition:
enumtype_unittest.cpp:31
main
int main()
Definition:
vision_stereo_rectify/test.cpp:78
TEnumType.h
mrpt::typemeta::TEnumType
A helper class that can convert an enum value into its textual representation, and viceversa.
Definition:
config/CConfigFileBase.h:24
MRPT_FILL_ENUM
#define MRPT_FILL_ENUM(_X)
For use in specializations of TEnumTypeFiller.
Definition:
TEnumType.h:86
argv
const char * argv[]
Definition:
RawlogGrabberApp_unittest.cpp:40
North
@ North
Definition:
enumtype_unittest.cpp:30
MRPT_FILL_ENUM_MEMBER
#define MRPT_FILL_ENUM_MEMBER(_CLASS, _VALUE)
Definition:
TEnumType.h:88
argc
const int argc
Definition:
RawlogGrabberApp_unittest.cpp:41
West
@ West
Definition:
enumtype_unittest.cpp:33
Test_EnumType
void Test_EnumType()
Definition:
vision_stereo_rectify/test.cpp:46
Page generated by
Doxygen 1.8.17
for MRPT 2.0.3 at Thu May 21 21:53:32 UTC 2020