#include <algorithm>
#include <iostream>
#include <string>

template<class... Args, class R>
auto resolve(R (*m)(Args...)) { return m; }

template<class R>
auto resolve(R (*m)()) { return m; }

class A {
    static void f(char c) { std::cout << c; }
    static void f(int i) { std::cout << i; }
public:
    void scan(const std::string& s) {
        std::for_each(s.begin(), s.end(), resolve<char>(f));
    }
};

int main() {
	A{}.scan("hello");
}