Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / С++17: inline переменные / 2 сообщений из 2, страница 1 из 1
17.11.2018, 07:05
    #39734445
Фэйтл Эра
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++17: inline переменные
В чем счастье от их использования?
В том, что переменные в заголовочных h/hpp фалов можно размещать без упаковки в статические методы в виде статических переменных? Или в чем?
Поясните, пожалуйста.
...
Рейтинг: 0 / 0
17.11.2018, 13:42
    #39734523
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++17: inline переменные
Фэйтл Эра,

Да. Теперь header-only библиотеки с глобальным состоянием писать проще.

Раньше приходилось извращаться с помощью локальных статических переменных, которые имеют оверхед из-за многопоточности.

Ну или такой изврат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
template <typename Dummy>
struct TestImpl
{
    static std::string var;
};

template <typename Dummy>
std::string TestImpl<Dummy>::var = "test";

using Test = TestImpl<void>;

int main()
{
    cout << Test::var << endl;
    return 0;
}



А теперь то же самое можно записать проще:
Код: plaintext
1.
2.
3.
4.
struct Test
{
    static inline std::string var = "test";
};



Т.е. это синтаксический сахар позволяющий просто декларативно сказать что нужно, вместо того чтобы каждый раз кодировать это.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / С++17: inline переменные / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]