История изменений
Исправление KennyMinigun, (текущая версия) :
Ага, то есть там две проблемы. Первая описана по ссылке, но даже если заменить инициализатор на Functors{std::forward<Args>(args)...}...
(под GCC оно ошибочно работает как оригинальный вариант)
Все равно остается проблема дедукции типов: https://wandbox.org/permlink/QIpMcJHL0iZkhMIM
prog.cc: In function 'int main()':
prog.cc:36:14: error: no match for call to '(CompositeVisitor<>) (Foo&)'
36 | visitor(foo);
| ^
prog.cc:37:14: error: no match for call to '(CompositeVisitor<>) (Bar&)'
37 | visitor(bar);
| ^
prog.cc:38:14: error: no match for call to '(CompositeVisitor<>) (Baz&)'
38 | visitor(baz);
|
Исходная версия KennyMinigun, :
Ага, то есть там две проблемы. Первая описана по ссылке, но даже если заменить инициализатор на Functors{std::forward<Args>(args)...}...
(под GCC оно ошибочно работает как оригинальный вариант)
Все равно остается проблема дедукции типов:
prog.cc: In function 'int main()':
prog.cc:36:14: error: no match for call to '(CompositeVisitor<>) (Foo&)'
36 | visitor(foo);
| ^
prog.cc:37:14: error: no match for call to '(CompositeVisitor<>) (Bar&)'
37 | visitor(bar);
| ^
prog.cc:38:14: error: no match for call to '(CompositeVisitor<>) (Baz&)'
38 | visitor(baz);
|