本文整理汇总了C++中Option::getTypeName方法的典型用法代码示例。如果您正苦于以下问题:C++ Option::getTypeName方法的具体用法?C++ Option::getTypeName怎么用?C++ Option::getTypeName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Option
的用法示例。
在下文中一共展示了Option::getTypeName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getSecure
void
OptionsCont::writeSchema(std::ostream& os, bool /* addComments */) {
os << "<?xml version=\"1.0\"" << SUMOSAXAttributes::ENCODING << "?>\n\n";
os << "<xsd:schema elementFormDefault=\"qualified\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n\n";
os << " <xsd:include schemaLocation=\"baseTypes.xsd\"/>\n";
os << " <xsd:element name=\"configuration\" type=\"configurationType\"/>\n\n";
os << " <xsd:complexType name=\"configurationType\">\n";
os << " <xsd:all>\n";
for (std::vector<std::string>::const_iterator i = mySubTopics.begin(); i != mySubTopics.end(); ++i) {
std::string subtopic = *i;
if (subtopic == "Configuration") {
continue;
}
std::replace(subtopic.begin(), subtopic.end(), ' ', '_');
std::transform(subtopic.begin(), subtopic.end(), subtopic.begin(), tolower);
os << " <xsd:element name=\"" << subtopic << "\" type=\"" << subtopic << "Type\" minOccurs=\"0\"/>\n";
}
os << " </xsd:all>\n";
os << " </xsd:complexType>\n\n";
for (std::vector<std::string>::const_iterator i = mySubTopics.begin(); i != mySubTopics.end(); ++i) {
std::string subtopic = *i;
if (subtopic == "Configuration") {
continue;
}
std::replace(subtopic.begin(), subtopic.end(), ' ', '_');
std::transform(subtopic.begin(), subtopic.end(), subtopic.begin(), tolower);
os << " <xsd:complexType name=\"" << subtopic << "Type\">\n";
os << " <xsd:all>\n";
const std::vector<std::string>& entries = mySubTopicEntries[*i];
for (std::vector<std::string>::const_iterator j = entries.begin(); j != entries.end(); ++j) {
Option* o = getSecure(*j);
std::string type = o->getTypeName();
std::transform(type.begin(), type.end(), type.begin(), tolower);
if (type == "int[]") {
type = "intArray";
}
os << " <xsd:element name=\"" << *j << "\" type=\"" << type << "OptionType\" minOccurs=\"0\"/>\n";
}
os << " </xsd:all>\n";
os << " </xsd:complexType>\n\n";
}
os << "</xsd:schema>\n";
}
示例2: throw
void
OptionsCont::printHelp(std::ostream &os) throw() {
std::vector<std::string>::const_iterator i, j;
// print application description
os << ' ' << std::endl;
splitLines(os, myAppDescription , 0, 0);
os << std::endl;
// print usage BNF
os << "Usage: " << myAppName << " [OPTION]*" << std::endl;
os << ' ' << std::endl;
// print usage examples
if (myCallExamples.size()>1) {
os << " Examples:" << std::endl;
} else if (myCallExamples.size()!=0) {
os << " Example:" << std::endl;
}
if (myCallExamples.size()!=0) {
for (i=myCallExamples.begin(); i!=myCallExamples.end(); ++i) {
os << " " << myAppName << ' ' << (*i) << std::endl;
}
}
os << ' ' << std::endl;
// print additional text if any
if (myAdditionalMessage.length()>0) {
os << myAdditionalMessage << std::endl << ' ' << std::endl;
}
// print the options
// check their sizes first
// we want to know how large the largest not-too-large-entry will be
size_t tooLarge = 40;
size_t maxSize = 0;
for (i=mySubTopics.begin(); i!=mySubTopics.end(); ++i) {
const std::vector<std::string> &entries = mySubTopicEntries[*i];
for (j=entries.begin(); j!=entries.end(); ++j) {
Option *o = getSecure(*j);
// name, two leading spaces and "--"
size_t csize = (*j).length() + 2 + 4;
// abbreviation length ("-X, "->4chars) if any
std::vector<std::string> synonymes = getSynonymes(*j);
if (find_if(synonymes.begin(), synonymes.end(), abbreviation_finder())!=synonymes.end()) {
csize += 4;
}
// the type name
if (!o->isBool()) {
csize += 1 + o->getTypeName().length();
}
// divider
csize += 2;
if (csize<tooLarge&&maxSize<csize) {
maxSize = csize;
}
}
}
for (i=mySubTopics.begin(); i!=mySubTopics.end(); ++i) {
os << ' ' << *i << " Options:" << std::endl;
const std::vector<std::string> &entries = mySubTopicEntries[*i];
for (j=entries.begin(); j!=entries.end(); ++j) {
// start length computation
size_t csize = (*j).length() + 2;
Option *o = getSecure(*j);
os << " ";
// write abbreviation if given
std::vector<std::string> synonymes = getSynonymes(*j);
std::vector<std::string>::iterator a = find_if(synonymes.begin(), synonymes.end(), abbreviation_finder());
if (a!=synonymes.end()) {
os << '-' << (*a) << ", ";
csize += 4;
}
// write leading '-'/"--"
os << "--";
csize += 2;
// write the name
os << *j;
// write the type if not a bool option
if (!o->isBool()) {
os << ' ' << o->getTypeName();
csize += 1 + o->getTypeName().length();
}
csize += 2;
// write the description formatting it
os << " ";
size_t r;
for (r=maxSize; r>csize; --r) {
os << ' ';
}
std::string desc = o->getDescription();
size_t offset = csize > tooLarge ? csize : maxSize;
splitLines(os, desc, offset, maxSize);
}
os << std::endl;
}
}