Hello, OnlineGDB Q&A section lets you put your programming query to fellow community users. Asking a solution for whole assignment is strictly not allowed. You may ask for help where you are stuck. Try to add as much information as possible so that fellow users can know about your problem statement easily.

How to make std::format work with your own data types(C++20)?

+1 vote
asked Jan 4 by Areeb Sherjil (1,720 points)
I want to be able to write the following:

std::format("My new box, Box({:.2},{:.2},{:.2})", box.getLength(), box.getWidth(), box.getHeight());

to

std::format("My new box, Box({:.2},{:.2},{:.2})", box.getLength(), box.getWidth(), box.getHeight());

This is what I've done so far:

template <>

class std::formatter<Box> :public std::formatter<double>

{

public:

    using std::formatter<double>::format;

    auto format(const Box& box, auto& context)

    {

        auto iter = format(box.getLength(), context);

        context.advance(iter);

        out = format(box.getWidth(), context);

        context.advance(iter);

        return format(box.getHeight(), context);

    

    }

}; The box class definition is inside another header file. As you can see this code above does not work.

1 Answer

–2 votes
answered Jan 5 by Omnick (150 points) 2 flags
monke + banan = unlimited power, you're welcome.
Welcome to OnlineGDB Q&A, where you can ask questions related to programming and OnlineGDB IDE and and receive answers from other members of the community.
...