#pragma once template struct overload : Ts... { overload(Ts... ts) : Ts(ts)... {} using Ts::operator()...; };