26    bool operator()(TObject *aObj) {
 
   30       TObjString *str(dynamic_cast<TObjString*>(aObj));
 
   34       cout << 
"Value: " << str->String().Data() << endl;
 
   43    SFind(
const TString &aStr): fToFind(aStr) {
 
   46    bool operator()(TObject *aObj) {
 
   47       TObjString *str(dynamic_cast<TObjString*>(aObj));
 
   48       return !str->String().CompareTo(fToFind);
 
   51    const TString fToFind;
 
   63    for (
int i = 0; i < size; ++i) {
 
   64       ss << 
"test string #" << i;
 
   65       TObjString *s(
new TObjString(ss.str().c_str()));
 
   73    for_each(stringList.begin(), stringList.end(), SEnumFunctor());
 
   78    string strToFind(
"test string #4");
 
   79    SFind func(strToFind.c_str());
 
   81    TIterCategory<TList> iter_cat(&stringList);
 
   82    TIterCategory<TList> found
 
   83       = find_if(iter_cat.Begin(), TIterCategory<TList>::End(), func);
 
   87       cerr << 
"Can't find the string: \"" << strToFind << 
"\" in the container" << endl;
 
   91    TObjString *str(dynamic_cast<TObjString*>(*found));
 
   93       cerr << 
"Can't find the string: \"" << strToFind << 
"\" in the container" << endl;
 
   97    cout << 
"The string has been found: " << str->String().Data() << endl;