Форум программистов, компьютерный форум, киберфорум
Наши страницы
Boost C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Koncord
5 / 5 / 1
Регистрация: 27.09.2012
Сообщений: 65
1

Boost::variant достать значение

09.04.2015, 17:31. Просмотров 877. Ответов 2
Метки нет (Все метки)

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
class parser
{
public:
    struct DATA
    {
        uint8_t vtype;
        struct st0
        {
            float val0, val1;
        };
        struct st1
        {
            uint32_t id;
            float val0;
        };
        boost::variant<std::vector<uint8_t>, float, st0, int, st1> var;
    };
    std::vector<DATA> data;
    void doParse();
};
 
main()
{
    parser p = new parser();
    p->doParse();
    if(p->data[0].vtype == 0) // это float
    {
        float f = p->data[0].var;   // как правильно достать float значение из var??
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2015, 17:31
Ответы с готовыми решениями:

boost Variant
Компилятор ругается что типа не может найти копи констрактор... но я его его вроде как внедрил......

Присвоить значение возвращаемое boost::bind
Добой ночи. Хотелось бы знать, как присвоить значение, возвращаемое boost::bind. Есть...

Как вернуть значение функции из потока (boost) ?
Есть основной цикл, который принимает команды из вне. Требуется при получении этой команды в потоке...

Boost начало работы: Undefined reference to `boost::system::generic_category() '
Добрый день Собственно говоря возникла необходимость использовать boost в работе. Поставил так: ...

Boost Log - undefined reference to `boost::system::system_category()'
Пытаюсь скомпилировать код из примеров Boost Log:#include &lt;boost/log/trivial.hpp&gt; int main(int,...

2
ForEveR
В астрале
Эксперт С++
8003 / 4761 / 653
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
10.04.2015, 10:34 2
Написать visitor или использовать функцию get
C++
1
boost::get<float>(p->data[0].var);
1
Koncord
5 / 5 / 1
Регистрация: 27.09.2012
Сообщений: 65
10.04.2015, 10:55  [ТС] 3
Да, спасибо! Но проблема была не совсем в этом. Просто лень было читать длинные логи после 2х дней без сна =). В оригинальном проекте идет инклюд только boost/variant/variant.hpp для ускорения сборки, и я забыл про это.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2015, 10:55

Использование boost и boost.build с несколькими компиляторами
Здравствуйте! Собрал библиотеку boost и boost.build для двух компиляторов: MinGW 4.5.2 и Visual...

Метапрограммирование в boost::proto (boost::spirit)
В библиотеке boost:: proto есть такой код calculator&lt;proto::terminal&lt;placeholder&lt;0&gt; &gt;::type&gt;...

Qt и boost boost::system::generic_category()
Добрый день Не подскажите как настроить Qt на работу с boost? У меня в принципе все работает:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru