Skip to content

Comments

Use an alias to boost::variant instead of wrapping the type#2

Open
MakersF wants to merge 1 commit intomasterfrom
simplevariant
Open

Use an alias to boost::variant instead of wrapping the type#2
MakersF wants to merge 1 commit intomasterfrom
simplevariant

Conversation

@MakersF
Copy link
Owner

@MakersF MakersF commented Dec 22, 2017

This fails to compile. Yet have to figure why and how to fix.

In file included from /usr/include/boost/variant/variant.hpp:2412:0,
                 from /usr/include/boost/variant.hpp:17,
                 from resilient/include/resilient/detail/variant_boost2.hpp:7,
                 from resilient/include/resilient/common/variant.hpp:14,
                 from resilient/include/resilient/task/failable.hpp:6,
                 from resilient/include/resilient/task/task.hpp:28,
                 from resilient/test/task.t.cpp:1:
/usr/include/boost/variant/detail/variant_io.hpp: In instantiation of ‘void boost::detail::variant::printer<OStream>::operator()(const T&) const [with T = res
ilient::NoFailure; OStream = std::basic_ostream<char>]’:
/usr/include/boost/variant/variant.hpp:978:24:   required from ‘boost::detail::variant::invoke_visitor<Visitor>::result_type boost::detail::variant::invoke_vi
sitor<Visitor>::internal_visit(T&, int) [with T = const resilient::NoFailure; Visitor = boost::detail::variant::printer<std::basic_ostream<char> >; boost::det
ail::variant::invoke_visitor<Visitor>::result_type = void]’
/usr/include/boost/variant/detail/visitation_impl.hpp:114:9:   required from ‘typename Visitor::result_type boost::detail::variant::visitation_impl_invoke_imp
l(int, Visitor&, VoidPtrCV, T*, mpl_::true_) [with Visitor = boost::detail::variant::invoke_visitor<boost::detail::variant::printer<std::basic_ostream<char> >
 >; VoidPtrCV = const void*; T = resilient::NoFailure; typename Visitor::result_type = void; mpl_::true_ = mpl_::bool_<true>]’
/usr/include/boost/variant/detail/visitation_impl.hpp:154:41:   required from ‘typename Visitor::result_type boost::detail::variant::visitation_impl_invoke(in
t, Visitor&, VoidPtrCV, T*, NoBackupFlag, int) [with Visitor = boost::detail::variant::invoke_visitor<boost::detail::variant::printer<std::basic_ostream<char>
 > >; VoidPtrCV = const void*; T = resilient::NoFailure; NoBackupFlag = boost::variant<resilient::NoFailure, {anonymous}::FailureMock>::has_fallback_type_; ty
pename Visitor::result_type = void]’
/usr/include/boost/variant/detail/visitation_impl.hpp:238:5:   required from ‘typename Visitor::result_type boost::detail::variant::visitation_impl(int, int, 
Visitor&, VoidPtrCV, mpl_::false_, NoBackupFlag, Which*, step0*) [with Which = mpl_::int_<0>; step0 = boost::detail::variant::visitation_impl_step<boost::mpl:
:l_iter<boost::mpl::l_item<mpl_::long_<2l>, resilient::NoFailure, boost::mpl::l_item<mpl_::long_<1l>, {anonymous}::FailureMock, boost::mpl::l_end> > >, boost:
:mpl::l_iter<boost::mpl::l_end> >; Visitor = boost::detail::variant::invoke_visitor<boost::detail::variant::printer<std::basic_ostream<char> > >; VoidPtrCV = const void*; NoBackupFlag = boost::variant<resilient::NoFailure, {anonymous}::FailureMock>::has_fallback_type_; typename Visitor::result_type = void; mpl_::false_ = mpl_::bool_<false>]’
/usr/include/boost/variant/variant.hpp:2318:48:   required from ‘static typename Visitor::result_type boost::variant<T0, TN>::internal_apply_visitor_impl(int, int, Visitor&, VoidPtrCV) [with Visitor = boost::detail::variant::invoke_visitor<boost::detail::variant::printer<std::basic_ostream<char> > >; VoidPtrCV = const void*; T0_ = resilient::NoFailure; TN = {{anonymous}::FailureMock}; typename Visitor::result_type = void]’
/usr/include/boost/variant/variant.hpp:2343:43:   required from ‘typename Visitor::result_type boost::variant<T0, TN>::internal_apply_visitor(Visitor&) const [with Visitor = boost::detail::variant::invoke_visitor<boost::detail::variant::printer<std::basic_ostream<char> > >; T0_ = resilient::NoFailure; TN = {{anonymous}::FailureMock}; typename Visitor::result_type = void]’
/usr/include/boost/variant/variant.hpp:2367:52:   required from ‘typename Visitor::result_type boost::variant<T0, TN>::apply_visitor(Visitor&) const [with Visitor = boost::detail::variant::printer<std::basic_ostream<char> >; T0_ = resilient::NoFailure; TN = {{anonymous}::FailureMock}; typename Visitor::result_type = void]’
/usr/include/boost/variant/detail/variant_io.hpp:88:5:   required from ‘std::basic_ostream<_CharT, _Traits>& boost::operator<<(std::basic_ostream<_CharT, _Tra
its>&, const boost::variant<U0, UN ...>&) [with E = char; T = std::char_traits<char>; U0 = resilient::NoFailure; UN = {{anonymous}::FailureMock}]’
/usr/include/gtest/gtest-printers.h:245:7:   required from ‘void testing_internal::DefaultPrintNonContainerTo(const T&, std::ostream*) [with T = boost::variant<resilient::NoFailure, {anonymous}::FailureMock>; std::ostream = std::basic_ostream<char>]’
/usr/include/gtest/gtest-printers.h:338:49:   required from ‘void testing::internal::DefaultPrintTo(testing::internal::IsNotContainer, testing::internal::false_type, const T&, std::ostream*) [with T = boost::variant<resilient::NoFailure, {anonymous}::FailureMock>; testing::internal::IsNotContainer = char; testing::internal::false_type = testing::internal::bool_constant<false>; std::ostream = std::basic_ostream<char>]’
/usr/include/gtest/gtest-printers.h:376:17:   required from ‘void testing::internal::PrintTo(const T&, std::ostream*) [with T = boost::variant<resilient::NoFailure, {anonymous}::FailureMock>; std::ostream = std::basic_ostream<char>]’
/usr/include/gtest/gtest-printers.h:600:12:   required from ‘static void testing::internal::UniversalPrinter<T>::Print(const T&, std::ostream*) [with T = boost::variant<resilient::NoFailure, {anonymous}::FailureMock>; std::ostream = std::basic_ostream<char>]’
/usr/include/gmock/gmock-spec-builders.h:1339:31:   required from ‘void testing::internal::ActionResultHolder<T>::PrintAsActionResult(std::ostream*) const [with T = boost::variant<resilient::NoFailure, {anonymous}::FailureMock>; std::ostream = std::basic_ostream<char>]’
/media/francesco/A6528DA1528D76B9/Programmazione/projects/resilient/test/task.t.cpp:80:1:   required from here
/usr/include/boost/variant/detail/variant_io.hpp:64:14: error: no match for ‘operator<<’ (operand types are ‘std::basic_ostream<char>’ and ‘const resilient::NoFailure’)
         out_ << operand;
         ~~~~~^~~~~~~~~~

@MakersF
Copy link
Owner Author

MakersF commented Dec 22, 2017

@amallia @SuperV1234 Suggestions?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant