5#ifndef DUNE_COMMON_STRINGUTILITY_HH
6#define DUNE_COMMON_STRINGUTILITY_HH
38 std::size_t len = std::strlen(prefix);
39 return c.size() >= len &&
40 std::equal(prefix, prefix+len, c.begin());
54 std::size_t len = std::strlen(suffix);
55 if(c.size() < len)
return false;
56 typename C::const_iterator it = c.begin();
57 std::advance(it, c.size() - len);
58 return std::equal(suffix, suffix+len, it);
73 static std::string
formatString(
const std::string& s,
const T&... args)
75 static const int bufferSize=1000;
76 char buffer[bufferSize];
79 int r = std::snprintf(buffer, bufferSize, s.c_str(), args...);
87 return std::string(buffer);
91 int dynamicBufferSize = r+1;
93 std::unique_ptr<char[]> dynamicBuffer;
95 dynamicBuffer = std::make_unique<char[]>(dynamicBufferSize);
97 catch (
const std::bad_alloc&) {
102 r = std::snprintf(dynamicBuffer.get(), dynamicBufferSize, s.c_str(), args...);
107 assert(r<dynamicBufferSize);
109 return std::string(dynamicBuffer.get());
Base class for Dune-Exceptions.
Definition: exceptions.hh:96
A few common exception classes.
#define DUNE_THROW(E, m)
Definition: exceptions.hh:218
bool hasSuffix(const C &c, const char *suffix)
Check whether a character container has a given suffix.
Definition: stringutility.hh:53
static std::string formatString(const std::string &s, const T &... args)
Format values according to printf format string.
Definition: stringutility.hh:73
bool hasPrefix(const C &c, const char *prefix)
Check whether a character container has a given prefix.
Definition: stringutility.hh:37
Dune namespace.
Definition: alignedallocator.hh:13