3#ifndef DUNE_COMMON_STRINGUTILITY_HH
4#define DUNE_COMMON_STRINGUTILITY_HH
36 std::size_t len = std::strlen(prefix);
37 return c.size() >= len &&
38 std::equal(prefix, prefix+len, c.begin());
52 std::size_t len = std::strlen(suffix);
53 if(c.size() < len)
return false;
54 typename C::const_iterator it = c.begin();
55 std::advance(it, c.size() - len);
56 return std::equal(suffix, suffix+len, it);
71 static std::string
formatString(
const std::string& s,
const T&... args)
73 static const int bufferSize=1000;
74 char buffer[bufferSize];
77 int r = std::snprintf(buffer, bufferSize, s.c_str(), args...);
85 return std::string(buffer);
89 int dynamicBufferSize = r+1;
91 std::unique_ptr<char[]> dynamicBuffer;
93 dynamicBuffer = std::make_unique<char[]>(dynamicBufferSize);
95 catch (
const std::bad_alloc&) {
100 r = std::snprintf(dynamicBuffer.get(), dynamicBufferSize, s.c_str(), args...);
105 assert(r<dynamicBufferSize);
107 return std::string(dynamicBuffer.get());
Base class for Dune-Exceptions.
Definition: exceptions.hh:94
A few common exception classes.
#define DUNE_THROW(E, m)
Definition: exceptions.hh:216
bool hasSuffix(const C &c, const char *suffix)
Check whether a character container has a given suffix.
Definition: stringutility.hh:51
static std::string formatString(const std::string &s, const T &... args)
Format values according to printf format string.
Definition: stringutility.hh:71
bool hasPrefix(const C &c, const char *prefix)
Check whether a character container has a given prefix.
Definition: stringutility.hh:35
Dune namespace.
Definition: alignedallocator.hh:14