Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Hex to Ascii Всем привет! Работаю с АЦП, и ему надо отправить ascii код (55H 55H 00H 00H AAH). (в виде char будет (UU ª), просто так отправить не удалось) Попробовал отправить hex (55 55 00 00 AA), не принимает. Кто-нибудь может мне помочь вывести строчку "UU ª" хотя бы на командную строку? https://www.cyberforum.ru/ cpp/ thread1650678.html C++ QtCipherSqlitePlugin sqlite3_rekey не шифрует
Пытаюсь сменить пароль на БД. QSqlDriver *driver=myDatabase.driver(); QVariant handle=driver->handle(); Q_ASSERT_X(handle.isValid(), Q_FUNC_INFO, "Invalid handle of QSqlDriver"); if(handle.isValid() && qstrcmp(handle.typeName(), "sqlite3*")!=0) return false; sqlite3* db=*static_cast<sqlite3* const*>(handle.data()); if(db==NULL)
C++ Инструмент для быстрого создания установщиков программ Есть ли какой-нибудь инструмент для быстрого создания установщиков программ, как например InnoSetup, но для C++? Или хотя бы приближенный к этому. https://www.cyberforum.ru/ cpp/ thread1649280.html C++ Как скомпилировать Lammps под windows? https://www.cyberforum.ru/ cpp/ thread1648671.html
Добрый день! Очень нужна помощь в установке и запуске программы молекулярной динамики LAMMPS под Windows. Программу установил, создал bat. файл запуска,но программа все равно не работает. Я новичок в программировании, есть ли простой способ установки и запуска данной программы.
Как правильно создать ModBus ASCII запрос? C++
Адрес - 26 Код функции 03h начало - 0000 Количество -0004 расчет LRC char calculateLRC( char b, int n){ char lrc = 0x00; for (int i = 1; i < n; i++) {
C++ Почему происходит ошибка undefined reference to hgeCreate Всем привет. Я новичок по C++ и недавно решил освоить разработку игр. Скачал с интернета 2D движок для графики HGE, однако никак не могу скомпилировать даже пример, ибо компилятор ругается. Код примера: #include "include/hge.h" HGE *hge = 0; bool FrameFunc() { if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true; return false; https://www.cyberforum.ru/ cpp/ thread1647650.html
C++ Переписать код из ASM на С++ для сборки под x64 Задача: переписать код из ASM на C++ для сборки под X64 Ибо я ASM не знаю #include "stdafx.h" #include "xrTheora_Surface_mmx.h" #pragma warning( disable : 4731 ) #pragma pack( push ) #pragma pack( 1 ) https://www.cyberforum.ru/ cpp/ thread1647574.html C++ Как работать с xpath используя библиотеку xmlpp?
Мучаюсь весь день с xPath... Не могу понять как с ним работать? Допустим такой код: std::string StatusProfile = ".//*/span/span/text()"; auto status_profile = root->find(StatusProfile); std::cout << "Статус: " << dynamic_cast<xmlpp::ContentNode*>(status_profile)->get_content() << std::endl; В ответ получаю - Ошибка сегментирования (сделан дамп памяти). Не пойму что я делаю не так,...
C++ Распознавание текста народ всем привет) подскажите пожалуйста литература, а если быть точнее как написать сканер текста( приложения) в каком направлении капать? если кто писал или есть какие нибудь статьи напишите пожалуйста) хочу попробовать написать для опыта) kcoding.net/2012/qrcode-coding-decoding-libs/ библиотека QR-кодов подойдет для распознавания текста(слова или буквы) с камеры телефона https://www.cyberforum.ru/ cpp/ thread1647418.html C++ Темы из раздела С++ для экспертов и другие интересные темы https://www.cyberforum.ru/ cpp/ thread1646935.html
Раздел закрыт и темы перенеслись в раздел С++. Здесь находится список тем, которые были в разделе, чтобы они совсем не затерялись. https://www.cyberforum.ru/cpp/thread1244422.html https://www.cyberforum.ru/cpp/thread323714.html https://www.cyberforum.ru/cpp/thread1221708.html https://www.cyberforum.ru/cpp/thread1085808.html https://www.cyberforum.ru/cpp/thread1076677.html...
C++ Движение Бильярдного шара по столу без луз
Доброго времени суток товарищи! Случилось "бяда" с написанием программ.и нужно ее написать на C++ в консольном режиме. Я писал в основном на vba и delphi. с++ только начал изучать. и тут такая задачка. "Изобразить на экране движение шара по бильярду без луз. Скорость движения шара уменьшается с постоянным ускорением." с основами работы в консоли я толком не знаком. Реально ли это? если да то...
C++ Ошибка компилятора C2600 Здравствуйте. Такая ошибка:"c:\my documets\visual studio 2013\projects\step4\step4\step4.cpp(93): error C2600: CMainWnd::~CMainWnd: нельзя определить специальную функцию-член, созданную компилятором (сначала необходимо объявить ее в классе)". Вроде бы ошибку понял и объявил функцию в классе: CMainWnd::CMainWnd() { Create(NULL, L"Step4", WS_OVERLAPPEDWINDOW, rectDefault, NULL, NULL); ... https://www.cyberforum.ru/ cpp/ thread1645404.html
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
0

Обертка над boost::lexical_cast для работы с unsigned типами - C++ - Ответ 8692692

31.01.2016, 15:29. Показов 3685. Ответов 23
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Пару дней назад выяснилось, что boost::lexical_cast
не удовлетворяет нескольким требованиям в моей программе.
boost::lexical_cast отказывается обрабатывать и выбрасывает исключение,
если имеются пробелы в начале или в конце входной строки.
Также для unsigned типов, отрицательные значения обрабатываются нормально, т.е., например,
boost::lexical_cast<unsigned int>("-1") даст вполне валидное значение.
Для моих целей эти два факта были неприемлемы.
Собственно, Ticket #5494 как раз об этом,
и там был представлен такой велосипед:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <boost/lexical_cast.hpp>
#include <boost/type_traits/is_unsigned.hpp>
 
template <bool is_unsigned>
struct unsigned_checker
{
    template<typename String_type>
    static inline void do_check(const String_type & str) { }
};
 
template <>
struct unsigned_checker<true>
{
    template<typename String_type>
    static inline void do_check(const String_type & str)
    {
        if( str[0] == '-' ) boost::throw_exception( boost::bad_lexical_cast() );
    }
};
 
template<typename Target, typename Source>
inline Target forced_lexical_cast(const Source &arg)
{
    unsigned_checker< boost::is_unsigned<Target>::value >::do_check(arg);
    return boost::lexical_cast<Target>( arg );
}
Но для моих целей он также не подходит, т.к. кидает исключение и для строки "-0",
а ведь "-0", как и "+0" - вполне валидные значения.
Поэтому был написан велосипед:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
namespace detail
{
    struct string_cast_impl
    {
        template<typename TargetType>
        static
        std::enable_if_t<std::is_unsigned<TargetType>::value, TargetType>
        cast(const std::string& source)
        {
            if (!source.empty() && source[0] == '-'){
                TargetType result = boost::lexical_cast<TargetType>(source) ;
                return (result!=0) ? throw boost::bad_lexical_cast(),TargetType(0) : result  ;
            }
            return boost::lexical_cast<TargetType>(source);
        }
 
 
 
        template<typename TargetType>
        static
        std::enable_if_t<!std::is_unsigned<TargetType>::value, TargetType>
        cast(const std::string& source)
        {
            return boost::lexical_cast<TargetType>(source) ;
        }
    };
}//end of detail
 
 
 
template<typename TargetType, typename StringType>
std::decay_t<TargetType> string_cast(StringType&& source)
{
    using DecayType = std::decay_t<TargetType> ;
    std::string str(std::forward<StringType>(source)) ;
    boost::trim(str) ;
    return detail::string_cast_impl::cast<DecayType>(str) ;
}
Решил выложить, вдруг кому пригодится, или будут дополнения/исправления.

Использование:
C++
1
2
3
4
5
int main(int argc, char ** argv)
{
    std::cout << string_cast<int>("-100") << std::endl ;
    std::cout << string_cast<unsigned int>("-100") << std::endl ;
}

P.S. Спасибо пользователям Kastaneda и hoggy за правки и дополнения.

Добавлено через 31 минуту
Вариант под C++11:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
namespace detail
{
    struct string_cast_impl
    {
        template<typename TargetType>
        static
        typename std::enable_if<std::is_unsigned<TargetType>::value, TargetType>::type
        cast(const std::string& source)
        {
            if (!source.empty() && source[0] == '-'){
                TargetType result = boost::lexical_cast<TargetType>(source) ;
                return (result!=0) ? throw boost::bad_lexical_cast(),TargetType(0) : result  ;
            }
            return boost::lexical_cast<TargetType>(source);
        }
 
 
 
        template<typename TargetType>
        static
        typename std::enable_if<!std::is_unsigned<TargetType>::value, TargetType>::type
        cast(const std::string& source)
        {
            return boost::lexical_cast<TargetType>(source) ;
        }
    };
}//end of detail
 
 
 
template<typename TargetType, typename StringType>
typename std::decay<TargetType>::type string_cast(StringType&& source)
{
    using DecayType = typename std::decay<TargetType>::type ;
    std::string str(std::forward<StringType>(source)) ;
    boost::trim(str) ;
    return detail::string_cast_impl::cast<DecayType>(str) ;
}


Вернуться к обсуждению:
Обертка над boost::lexical_cast для работы с unsigned типами C++
4
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2016, 15:29
Готовые ответы и решения:

Обертка над boost::asio
Вот класс обертки: class NetworkManager{ std::string CIP,IP; unsigned short CPort,Port;...

Namespace boost не содержит члена lexical_cast
.... #include &quot;boost\lexical_cast.hpp&quot; int main() { ..... m.insert(std::pair&lt;int,...

Обертка над C библиотекой
Всем здравствуйте. Есть dll написанная на C и заголовочные файлы. Хочу написать обертку на C++/CLI,...

Обертка над Си библиотекой
Добрый день, имеется библиотека написанная на Си (API для работы с оборудованием), хочу обернуть ее...

23
31.01.2016, 15:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2016, 15:29
Помогаю со студенческими работами здесь

Обертка над INotifyPropertyChanged
Я пытаюсь написать (если это возможно) обертку над INotifyPropertyChanged. Просто во первых при его...

Обёртка над WinAPI
В архиве обычная обёртка над формой на WinApi, (ничего лишнего только класс формы); Чтобы создать...

Обёртка над WinApi платно
Среда - Code::Blocks_16.01 Я написал обёртку над окном WinApi которая реализует событейную...

Обертка над массивом double[]
Здравствуйте, подскажите пожалуйста с решением задания. Само задание: Нужно организовать...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru