prog.cpp: In function 'void func_b(T) [with T = std::_Bind<void (*(int, std::_Bind<void (*(int))(int)>))(int, std::_Bind<void (*(int))(int)>)>]':
prog.cpp:20:2: instantiated from 'void func_c(T) [with T = std::_Bind<void (*(int))(int)>]'
prog.cpp:28:32: instantiated from here
prog.cpp:14:2: error: conversion from 'std::result_of<const std::_Bind<void (*())()>()>::type' to non-scalar type 'std::_Bind<void (*(int))(int)>' requested
prog.cpp:20:2: instantiated from 'void func_c(T) [with T = std::_Bind<void (*(int))(int)>]'
prog.cpp:28:32: instantiated from here
prog.cpp:14:2: error: conversion from 'std::result_of<std::_Bind<void (*())()>()>::type' to non-scalar type 'std::_Bind<void (*(int))(int)>' requested
prog.cpp:14:2: error: no match for call to '(std::_Bind<void (*(int, std::_Bind<void (*(int))(int)>))(int, std::_Bind<void (*(int))(int)>)>) ()'