Нужно найти подстроку, в строке wstring, без учёта регистра. ОС - Windows.
static void CheckItem( boost::intrusive_ptr<IBaseTreeItem> root, const std::wstring & str, std::vector<boost::intrusive_ptr<IBaseTreeItem>> & res )
{
boost::intrusive_ptr<IBaseTreeItem> item = root->GetFirstChild();
while ( item )
{
std::wstring name;
item->GetText( name );
if ( name.find( str ) != std::wstring::npos ) // здесь нужен поиск подстроки без учёта регистра.
res.push_back( item );
CheckItem( item, str, res );
item = item->GetNextSibling();
}
}
Чтобы сделать быстро:
перевести строки в строчное представление так
std::transform(data.begin(), data.end(), data.begin(), ::tolower);
и уже потом искать вхождение.
Чтобы сделать оптимально:
Воспользуйтесь методом с предикатом из комменатриев под вопросом.
Если есть более удачные решения, буду рад их услышать.
Продвижение своими сайтами как стратегия роста и независимости