Когда-то давно по материалам из Интернета сделал собственный аналог функции std::apply из C++17, но для C++11. Для тех счастливчиков, которые никогда не сталкивались с std::apply или его аналогами скажу, что std::apply позволяет вызвать нужную вам функцию, передав в нее содержимое имеющегося у вас std::tuple. Т.е. фокус в том, чтобы распаковать содержимое std::tuple в набор аргументов вызываемой функции.
В C++11 для такого трюка не было вообще никаких готовых инструментов. В C++14 уже появился std::index_sequence, на базе которого основная магия и происходит. Ну а в C++17 уже есть std::apply. Но мне в свое время нужно было именно для C++11, поэтому и появилась реализация call_by_tuple. Появилась и так и валяется у меня на винте. Время от времени ее приходится искать. И, для того, чтобы искать было проще, решил ее код опубликовать в склерозникблоге.
Поиграться в он-лайн компиляторе с моим вариантом call_by_tuple можно на wandbox-е. Исходный текст этого же примера с реализацией call_by_tuple под катом.