Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 13:28:57

0001 
0002 #include "FWCore/ParameterSet/interface/ParameterDescriptionCases.h"
0003 
0004 namespace edm {
0005 
0006   std::unique_ptr<ParameterDescriptionCases<bool> > operator||(
0007       std::unique_ptr<ParameterDescriptionCases<bool> > left, std::unique_ptr<ParameterDescriptionCases<bool> > right) {
0008     std::unique_ptr<std::map<bool, edm::value_ptr<ParameterDescriptionNode> > > rightCases = right->caseMap();
0009     for (std::map<bool, edm::value_ptr<ParameterDescriptionNode> >::const_iterator iter = rightCases->begin(),
0010                                                                                    iEnd = rightCases->end();
0011          iter != iEnd;
0012          ++iter) {
0013       bool caseValue = iter->first;
0014       std::unique_ptr<ParameterDescriptionNode> node(iter->second->clone());
0015       left->insert(caseValue, std::move(node));
0016     }
0017     return left;
0018   }
0019 
0020   std::unique_ptr<ParameterDescriptionCases<int> > operator||(std::unique_ptr<ParameterDescriptionCases<int> > left,
0021                                                               std::unique_ptr<ParameterDescriptionCases<int> > right) {
0022     std::unique_ptr<std::map<int, edm::value_ptr<ParameterDescriptionNode> > > rightCases = right->caseMap();
0023     for (std::map<int, edm::value_ptr<ParameterDescriptionNode> >::const_iterator iter = rightCases->begin(),
0024                                                                                   iEnd = rightCases->end();
0025          iter != iEnd;
0026          ++iter) {
0027       int caseValue = iter->first;
0028       std::unique_ptr<ParameterDescriptionNode> node(iter->second->clone());
0029       left->insert(caseValue, std::move(node));
0030     }
0031     return left;
0032   }
0033 
0034   std::unique_ptr<ParameterDescriptionCases<std::string> > operator||(
0035       std::unique_ptr<ParameterDescriptionCases<std::string> > left,
0036       std::unique_ptr<ParameterDescriptionCases<std::string> > right) {
0037     std::unique_ptr<std::map<std::string, edm::value_ptr<ParameterDescriptionNode> > > rightCases = right->caseMap();
0038     for (std::map<std::string, edm::value_ptr<ParameterDescriptionNode> >::const_iterator iter = rightCases->begin(),
0039                                                                                           iEnd = rightCases->end();
0040          iter != iEnd;
0041          ++iter) {
0042       std::string caseValue = iter->first;
0043       std::unique_ptr<ParameterDescriptionNode> node(iter->second->clone());
0044       left->insert(caseValue, std::move(node));
0045     }
0046     return left;
0047   }
0048 }  // namespace edm