#include <iostream>
#include <functional>

using namespace std;

namespace
{
	struct call
	{
		void operator()() const
		{
				std::cout << "call::operator()" << std::endl;
		}
	};
	
    struct dummy
    {
        dummy()
        {
        	std::cout << "dummy()" << std::endl;
        }
        dummy(const dummy&) = delete;

        call member;
    };
}


int main() {
	dummy d;
	
	d.member();

    auto b = std::bind(&dummy::member, &d);
    
    
    std::cout << (void*)&b() << std::endl;
    std::cout << (void*)&d.member <<std::endl;
    
    b()();
	return 0;
}