Celestia

Форк
0
/
value.cpp 
68 строк · 1.4 Кб
1
// value.cpp
2
//
3
// Copyright (C) 2001-2019, the Celestia Development Team
4
// Original version by Chris Laurel <claurel@gmail.com>
5
//
6
// This program is free software; you can redistribute it and/or
7
// modify it under the terms of the GNU General Public License
8
// as published by the Free Software Foundation; either version 2
9
// of the License, or (at your option) any later version.
10

11
#include "value.h"
12

13
/****** Value method implementations *******/
14

15
Value::Value(Value&& other) noexcept
16
    : type(other.type),
17
      units(other.units),
18
      data(other.data)
19
{
20
    other.type = ValueType::NullType;
21
}
22

23

24
Value& Value::operator=(Value&& other) noexcept
25
{
26
    if (this != &other)
27
    {
28
        switch (type)
29
        {
30
        case ValueType::StringType:
31
            delete data.s; //NOSONAR
32
            break;
33
        case ValueType::ArrayType:
34
            delete data.a; //NOSONAR
35
            break;
36
        case ValueType::HashType:
37
            delete data.h; //NOSONAR
38
            break;
39
        default:
40
            break;
41
        }
42
        type = other.type;
43
        units = other.units;
44
        data = other.data;
45
        other.type = ValueType::NullType;
46
    }
47

48
    return *this;
49
}
50

51

52
Value::~Value()
53
{
54
    switch (type)
55
    {
56
    case ValueType::StringType:
57
        delete data.s;
58
        break;
59
    case ValueType::ArrayType:
60
        delete data.a;
61
        break;
62
    case ValueType::HashType:
63
        delete data.h;
64
        break;
65
    default:
66
        break;
67
    }
68
}
69

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.