40 using Variant_t = boost::variant<int, char, std::string, QString, double, float>;
42 void VisitorTest::testBasicVisitor ()
45 const auto& res =
Visit (v,
46 [] (
char) {
return true; },
47 [] (int) {
return false; },
48 [] (std::string) {
return false; },
49 [] (QString) {
return false; },
50 [] (double) {
return false; },
51 [] (float) {
return false; });
55 void VisitorTest::testBasicVisitorGenericFallback ()
58 const auto& res =
Visit (v,
59 [] (
char) {
return true; },
60 [] (int) {
return false; },
61 [] (
auto) {
return false; });
65 void VisitorTest::testBasicVisitorCoercion ()
68 const auto& res =
Visit (v,
69 [] (
int) {
return true; },
70 [] (std::string) {
return false; },
71 [] (QString) {
return false; },
72 [] (double) {
return false; },
73 [] (float) {
return false; });
77 void VisitorTest::testBasicVisitorCoercionGenericFallback ()
80 const auto& res =
Visit (v,
81 [] (
int) {
return false; },
82 [] (QString) {
return false; },
83 [] (
auto) {
return true; });
87 #define NC nc = std::unique_ptr<int> {} 89 void VisitorTest::testNonCopyableFunctors ()
92 const auto& res =
Visit (v,
93 [
NC] (
char) {
return true; },
94 [
NC] (int) {
return false; },
95 [
NC] (std::string) {
return false; },
96 [
NC] (QString) {
return false; },
97 [
NC] (double) {
return false; },
98 [
NC] (float) {
return false; });
auto Visit(const boost::variant< HeadVar, TailVars... > &v, Args &&...args) -> decltype(detail::VisitorBase< Args... >
boost::variant< int, char, std::string, QString, double, float > Variant_t