Page MenuHomeHEPForge

BoundaryMethod.cc
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

BoundaryMethod.cc

#include <cassert>
#include <cstring>
#include <sstream>
#include <stdexcept>
#include "npstat/stat/BoundaryMethod.hh"
static const char* names[] = {
"BM_TRUNCATE",
"BM_STRETCH",
"BM_FOLD"
};
static const unsigned nNames = sizeof(names)/sizeof(names[0]);
namespace npstat {
BoundaryMethod parseBoundaryMethod(const char* methodName)
{
for (unsigned i=0; i<nNames; ++i)
if (strcmp(names[i], methodName) == 0)
return static_cast<BoundaryMethod>(i);
std::ostringstream os;
os << "In npstat::parseBoundaryMethod: invalid argument \""
<< methodName << "\". Must be one of "
<< validBoundaryMethodNames() << '.';
throw std::invalid_argument(os.str());
}
const char* boundaryMethodName(BoundaryMethod m)
{
const unsigned i = static_cast<unsigned>(m);
assert(i < nNames);
return names[i];
}
std::string validBoundaryMethodNames()
{
std::ostringstream os;
for (unsigned i=0; i<nNames; ++i)
{
if (i == 0)
os << names[i];
else if (i == nNames - 1)
os << " or " << names[i];
else
os << ", " << names[i];
}
return os.str();
}
}

File Metadata

Mime Type
text/x-c
Expires
Tue, Sep 30, 5:44 AM (11 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6558963
Default Alt Text
BoundaryMethod.cc (1 KB)

Event Timeline