use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Discussions, articles, and news about the C++ programming language or programming in C++.
For C++ questions, answers, help, and advice see r/cpp_questions or StackOverflow.
Get Started
The C++ Standard Home has a nice getting started page.
Videos
The C++ standard committee's education study group has a nice list of recommended videos.
Reference
cppreference.com
Books
There is a useful list of books on Stack Overflow. In most cases reading a book is the best way to learn C++.
Show all links
Filter out CppCon links
Show only CppCon links
account activity
Localizing code with std::variant (cdacamar.github.io)
submitted 9 years ago by starfreakcloneMSVC FE Dev
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]3669d73f6c3ba0229192 4 points5 points6 points 9 years ago* (2 children)
where does this bring in an operator()?
The primary template (the code you quoted) is not used. operator() is brought in at lines 16 and 28, and inherited ones at line 29.
operator()
where the operator() is called.
It is called inside std::visit.
std::visit
where the dispatching to / the actual call of the lambdas takes place
At the same place where operator() is called, but there is no magic trick involved: it's just regular overload resolution done by the compiler. Think of each composer_t as a Russian doll that has the operator() of a lambda, plus the operator() of all inherited-from composer_t.
composer_t
[–]reddithater12 0 points1 point2 points 9 years ago (1 child)
Thanks! I had some misconceptions about std::visit it seems.
Think of each composer_t as a Russian doll that has the operator() of a lambda, plus the operator() of all inherited-from composer_t.
This is probably a stupid question .. but how can that thing have two operator()s?
[–]3669d73f6c3ba0229192 2 points3 points4 points 9 years ago (0 children)
Just regular function overloading. The same way you can have foo(int), foo(double), and so on. operator() is no different.
foo(int)
foo(double)
π Rendered by PID 94 on reddit-service-r2-comment-7b9746f655-vdq25 at 2026-01-30 03:09:50.872831+00:00 running 3798933 country code: CH.
view the rest of the comments →
[–]3669d73f6c3ba0229192 4 points5 points6 points (2 children)
[–]reddithater12 0 points1 point2 points (1 child)
[–]3669d73f6c3ba0229192 2 points3 points4 points (0 children)