【C++】2進数文字列変換

再帰でやってみた

#include <string>     // std::string
#include <functional> // std::function
std::string binary(int dec)
{
    std::function<std::string(int)> base2 = [&](int val) {
        if(val == 0) return std::string{};
        return base2(val >> 1) + std::to_string(val%2);
    };
    if(dec == 0) return "0";
    else return base2(dec);
}
#include <iostream> // std::cout & std::endl
int main()
{
    std::cout << binary(15) << std::endl; // 1111
}