Boost logo

Boost :

From: Pavel Vozenilek (pavel_vozenilek_at_[hidden])
Date: 2004-02-23 12:15:35


Would it be possible to add function c_str() into format interface?

It would return const char/wchar_t* to internal string buffer.

Use cases for such function:

1.
void foo(const char*) { ...}

format f("...")
f % ...
foo(f.c_str());

This is shorter and faster than
foo(f.str().c_str());

No temporary gets created.

2.

// class used to accept any string type
struct parm_string {
    parm_string(const char* s) : str_(s) {}
    parm_string(const std::string& s) : str_(s.c_str()) {}

    const char* str_;
};

void foo(parm_string) { ... }

format f("...")
f % ...
// ERROR - pointer to deleted temporary gets used inside foo()
foo(f.str());
foo(f.c_str()); // would be OK

/Pavel


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk