использование CString с алгоритмами boost string-сокращение до одного typedef?


Мне нужно написать некоторый код для проекта MFC, но я не знаю, как получить необходимый код для работы при использовании MFC.

Сначала я прототипировал свою функцию, просто используя типы STL и boost.

прототип STL

#include <string>
#include <boost/algorithm/string/classification.hpp>
#include <boost/algorithm/string/find.hpp>

void ProtoTest()
{
    std::string sText("123Hello4");
    boost::iterator_range<std::string::iterator> nc_result = find_token(sText, boost::algorithm::is_alpha(), boost::algorithm ::token_compress_on);
}

Результат = "Привет"

В конце концов мне удалось заставить его работать с MFC, однако мне пришлось поставить два typedefs. Я хотел бы сделать это в одном, однако существует не так много документации по использованию порта MFC, предоставленного в повышать.

#include "stdafx.h"
#include <boostrangeatl.hpp>

void Test()
{
    typedef boost::range_iterator<CString>::type CString_it;
    typedef boost::iterator_range<CString_it> CString_range;
    CString strText("123Hello4");
    CString_range r;
    r = find_token(text, boost::algorithm::is_alpha(), boost::algorithm ::token_compress_on);
}

Снова Результат = "Привет"

Есть ли один typedef, который я могу использовать для хранения результата find_token, вместо того, чтобы использовать два typdef для его достижения.

1 2

1 ответ:

Вы можете просто объединить их

typedef boost::iterator_range<boost::range_iterator<CString>::type> CString_range;
Но я не знаю, является ли это преимуществом.