3#ifndef DUNE_COMMON_STRINGUTILITY_HH
4#define DUNE_COMMON_STRINGUTILITY_HH
20#include <dune/common/std/memory.hh>
37 std::size_t len = std::strlen(prefix);
38 return c.size() >= len &&
39 std::equal(prefix, prefix+len, c.begin());
53 std::size_t len = std::strlen(suffix);
54 if(c.size() < len)
return false;
55 typename C::const_iterator it = c.begin();
56 std::advance(it, c.size() - len);
57 return std::equal(suffix, suffix+len, it);
72 static std::string
formatString(
const std::string& s,
const T&... args)
74 static const int bufferSize=1000;
75 char buffer[bufferSize];
78 int r = std::snprintf(buffer, bufferSize, s.c_str(), args...);
86 return std::string(buffer);
90 int dynamicBufferSize = r+1;
92 std::unique_ptr<char[]> dynamicBuffer;
94 dynamicBuffer = Dune::Std::make_unique<char[]>(dynamicBufferSize);
96 catch (
const std::bad_alloc&) {
101 r = std::snprintf(dynamicBuffer.get(), dynamicBufferSize, s.c_str(), args...);
106 assert(r<dynamicBufferSize);
108 return std::string(dynamicBuffer.get());
Base class for Dune-Exceptions.
Definition: exceptions.hh:91
A few common exception classes.
bool hasSuffix(const C &c, const char *suffix)
Check whether a character container has a given suffix.
Definition: stringutility.hh:52
static std::string formatString(const std::string &s, const T &... args)
Format values according to printf format string.
Definition: stringutility.hh:72
bool hasPrefix(const C &c, const char *prefix)
Check whether a character container has a given prefix.
Definition: stringutility.hh:36
#define DUNE_THROW(E, m)
Definition: exceptions.hh:243
Dune namespace.
Definition: alignment.hh:10