Як увімкнути підтримку C ++ 11 / C ++ 0x у Eclipse CDT?


210

Затемнення 3.7.1 CDT 1.4.1 GCC 4.6.2

Це приклад фрагмента коду C ++ 11:

auto text = std::unique_ptr<char[]>(new char[len]);

Редактор Eclipse скаржиться на:

Function 'unique_ptr' could not be resolved

Компіляція Makefile працює чудово. Як змусити Eclipse перестати скаржитися на подібні помилки?


12
Принаймні, так і має бутиstd::unique_ptr<char[]>
Cubbi

Не впевнений, що правильно - char [] конвертований у char *, а unique_ptr <char> - вказівник на char, як char *
Нік

1
Не unique_ptr<char>дзвонить delete, що неправильно, оскільки це було створено new[]?
Дітріх Епп

6
@Nick: Ні, він правий. Те, як ви це написали, викликає deleteвиклик, коли вам потрібно delete[] зателефонувати. unique_ptr<char>Передбачає , що він отримує покажчик, який буде видалений з delete. unique_ptr<char[]>очікує масив, який видаляється delete[]правильно.
Нікол Болас

Відповіді:


224

Я знайшов цю статтю на форумі Eclipse, я просто дотримувався цих кроків, і це працює для мене. Я використовую Eclipse Indigo 20110615-0604 для Windows з налаштуванням Cygwin.

  • Створіть новий проект C ++
  • Параметри за замовчуванням для всього
  • Після створення правою кнопкою миші клацніть проект та перейдіть до "Властивості"
  • C / C ++ Build -> Налаштування -> Налаштування інструмента -> Компілятор GCC C ++ -> Різне -> Інші прапори. Поставте -std=c++0x(або для нової версії компілятора -std=c++11в кінці. ... замість компілятора GCC C ++ у мене є також компілятор Cygwin
  • C / C ++ Загальне -> Шляхи та символи -> Символи -> GNU C ++. Клацніть "Додати ..." та вставте __GXX_EXPERIMENTAL_CXX0X__(переконайтеся, що додаєте та додайте дві підкреслення) у "Ім'я" та залиште "Значення" порожнім.
  • Натисніть Застосувати, виконайте все, що вам потрібно, а потім натисніть ОК.

Опис цього питання є також і у поширених запитаннях Eclipse : Eclipse FAQ / C ++ 11 Особливості .

Налаштування зображення затемнення


2
Так, спрацювало! Але не забудьте додати і додати два підкреслення до GXX_EXPERIMENTAL_CXX0X - я прийму це тим часом
Nick

5
Чи видалено помилкові помилки редактора? У мене немає проблем із компіляцією, і нові типи std розпізнаються, але я не можу позбутися помилок синтаксису редактора для діапазону, заснованого на посиланнях циклів і rvalue &&.
juanchopanza

7
Природним подальшим питанням тепер стає: чи можемо ми оптимізувати наш робочий процес, зберігаючи ці конкретні параметри проекту C ++ у новому шаблоні проекту Eclipse: "C ++ 11 Project"?
Nordlöw

38
Примітка: для тих, хто шукає відповідь на Джуно, це не працює .
Крістофер

4
Для кеплера / юнона рішення знайдеться у цій відповіді . Він розміщений у редакції на відповідь Йохана Лундберга нижче, але я зазначу це і тут, щоб зробити прийняту відповідь більш повною.
Непридатний Люм’єр

150

Інструкція до Eclipse CDT 4.4 Luna та 4.5 Mars

Спочатку перед створенням проекту налаштуйте синтаксичний аналізатор Eclipse:

Window-> Preferences-> C/C++-> Build-> Settings-> Discovery->CDT GCC Build-in Compiler Settings

у текстовому полі під назвою Command to get compiler specsдодати-std=c++11

Тепер ви можете створити проект, конфігурація залежить від того, який проект ви створили:

Для проекту, створеного у вигляді: Файл -> Нове -> Проект -> C / C ++ -> Проект C ++

Клацніть правою кнопкою миші створений проект і відкрийте

Properties-> C/C++ Build-> Settings-> Tool Settings-> GCC C++ Compiler->Dialect

Помістіть -std=c++11у текстове поле під назвою other dialect flagsабо виберіть ISO C++11зі Language standardспадного меню.

Для проекту CMake

Створення файлів проекту затемнення (всередині вашого проекту)

mkdir build
cd build
cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ..

Потім імпортуйте створений каталог для затемнення як стандартний проект затемнення. Клацніть правою кнопкою миші проект та відкрийте

Properties-> C/C++ General-> Preprocessor Include Paths, Marcos etc.->Providers

увімкніть CDT GCC Build-in Compiler Settingsта перемістіть її вище Contributed PathEntry Containers(Це важливо)

Останній загальний крок

перекомпілювати, відновити Project-> C/C++ Indexта перезапустити Eclipse.


1
Працював ідеально навіть без необхідності перезапуску затемнення. Дякую.
прасанак

Дякую. Жодна інша відповідь не працювала для мене і на Луну.
Мохамед Ель-Накіб

Досі працює на Марсі. Більше ніж чудова відповідь! Якби я міг лише проголосувати за цю відповідь двічі!
Мохамед Ель-Накіб

Дякую! Це найкорисніша відповідь на питання, з яким я стикався (4.5)
AturSams

2
Для Eclipse Neon.3, для проекту Make + C ++, налаштування проекту було додано -std=c++11до Project Properties -> C/C++ General -> Preprocessor Include Paths, Macros etc. -> Providers [tab] -> CDT GCC Built-in Compiler Settings -> Command used to get compiler specs:. Додайте своє -std=c++11. У мене це було встановлено в глобальних налаштуваннях робочої області як таке, що пропонується, але воно не було скопійовано у місце, яке я описав вище, коли я створив новий Makefileпроект.
BeeOnRope

112

Оновлення 2016:

Станом на gcc 6 ( зміни ), за замовчуванням діалект C ++ становить C ++ 14. Це означає, що, якщо вам явно не потрібен новий або старіший діалект, ніж ніж, вам більше не потрібно нічого робити з затемненням.

Для Луни та Марса

Цей розділ вікі спільноти містить відповідь Трисмегістоса;

1. Перед створенням проекту налаштуйте синтаксичний аналізатор Eclipse:

Вікно -> Налаштування -> C / C ++ -> Збірка -> Налаштування -> Відкриття -> Налаштування компілятора вбудованого CDT GCC

у текстовому полі під назвою Команда для отримання специфікацій компілятора додайте -std=c++14 2. Створіть проект, конфігурація залежить від того, який проект ви створили:

Для проекту, створеного у вигляді: Файл -> Нове -> Проект -> C / C ++ -> Проект C ++

Клацніть правою кнопкою миші створений проект і відкрийте

Властивості -> C / C ++ Build -> Settings -> Settings settings -> GCC C ++ Compiler -> Dialect

Помістіть -std=c++14у текстове поле під назвою інші діалектні прапори або виберіть ISO C ++ 11 зі спадного меню Language Standard.

Зараз є новий спосіб вирішити це без злому GXX_EXPERIMENTAL.

Для останніх версій : (Зараз Джуно та Кеплер Луна ):

У нових версіях Juno налаштування розміщені на Project properties -> C/C++ General -> Preprocessor Include Paths, Macros etc. -> tab Providers -> CDT GCC Builtin Compiler Settings ().

Старіші версії 2012/2013:

  1. У розділі C / C ++ Build (у налаштуваннях проекту) знайдіть шлях включення до процесора та перейдіть на вкладку провайдерів . Зніміть виділення всіх параметрів, крім CDT GCC Builtin Compiler. Потім зніміть позначення налаштувань спільного доступу…. Додайте параметр -std = c ++ 11 в текстове поле під назвою Command, щоб отримати специфікатори компілятора.

  2. Переходьте до стежок та символів. У розділі Символи натисніть « Відновити за замовчуванням» та застосуйте.


Примітки:

Затьмарення прискіпливо ставиться до застосування, потрібно робити це кожен раз, коли ви залишаєте вкладку налаштувань.

[Самореклама]: Я написав власні більш детальні інструкції, виходячи з вищезазначеного. http://scrupulousabstractions.tumblr.com/post/36441490955/eclipse-mingw-builds

Дякуємо користувачеві Nobodyза адресою https://stackoverflow.com/a/13635080/1149664


3
Дякую, але це не допомогло мені вирішити c ++ 11 посилань. Програма компілюється правильно, але затемнення не може їх вирішити. Коли я перевіряю "масив", #ifndef __GXX_EXPERIMENTAL_CXX0X__повертає true та код під ним не розбирається. Коли я додаю __GXX_EXPERIMENTAL_CXX0X__до символів проекту, масив вирішується, але посилання мого проекту псуються. У чому тут може бути проблема?
Халіл Каскавальє

1
Я думаю, що це помилка. Я його повторно створив так: Відкрийте новий проект. Увімкніть c ++ 11 функцій. Додайте випадковий клас із загальнодоступною змінною. Створіть вектор цього випадкового класу. Отримайте ітератор. Спробуйте отримати доступ до загальнодоступної змінної. Або моя робоча область пошкоджена, або є помилка в Eclipse, яка не може цього розібрати.
Халіл Каскавальє

1
@HalilKaskavalci Я знайшов цю саму помилку. Якщо я встановив редактор на c ++ 11, ітератори не можуть вирішити. Якщо цього не зробити, std :: unique_ptr не може вирішити. Дійсно дратує, адже я використовую і те, і інше.
Кіан

1
@Kian Я повідомив про помилку. bugs.eclipse.org/bugs/show_bug.cgi?id=397027 . Це дуже дратує, і я почав використовувати прискорені бібліотеки, вони не створюють помилок :)
Halil Kaskavalci

1
працює для мене! Дякую! (зробив це за вашою посиланням) Я додав -std = c ++ 11 до провайдерів і відновив за замовчуванням символи. Я думаю, що відновлення типових символів рятує мене. Тепер унікальний_ptr вирішує.
Денис Заїкін

20

Для останнього (Juno) затемнення cdt для мене працювало наступне, не потрібно заявляти __GXX_EXPERIMENTAL_CXX0X__про себе. Це працює для індексатора CDT і як параметр для компілятора:

"назва вашого проекту" -> клацання правою кнопкою миші -> властивості:

C / C ++ Загальне -> Препроцесор Включайте шляхи, макроси тощо -> перехід на вкладку "Провайдери":

  • для "Конфігурація" виберіть "Випустити" (а потім "налагодження")

  • вимкніть усіх постачальників і просто виберіть "Налаштування вбудованого компілятора CDT GCC"

  • зніміть прапорець "Поділитися налаштуваннями даних між проектами (глобальним провайдером)"

  • у "Команда для отримання специфікацій компілятора:" додати "-std = c ++ 11" без лапок (може працювати і з цитатами)

  • натисніть застосувати та закрийте параметри

  • відновити індекс

Тепер усі пов'язані з c ++ 11 речі повинні бути вирішені індексатором правильно.

win7 x64, останнє офіційне затемнення з cdt mingw-w64 gcc 4.7.2 від проекту mingwbuilds у sourceforge


все ще отримують такі ж помилкові попередження редактора, як у Type 'std :: thread' неможливо було вирішити, хоча він збирає та виконує ОК
Скотт Стенсленд

2
Вам потрібно один раз компілювати нові налаштування, щоб парсер "дізнався", що встановлено прапор std = c ++ 11
Andreas

залежно від версії компілятора, можливо, буде потрібно додати -std = c ++ 0x замість -std = c ++ 11 (наприклад, debian wheezy)
xmoex

15

У мене була така ж проблема і в моєму Юнобі Eclipse. Ці кроки вирішили проблему:

  • Йти до Project -> Properties -> C/C++ General -> Path and Symbols -> Tab [Symbols] .
  • Додайте символ: __cplusplus зі значенням 201103L

2
Це слід прийняти як відповідь, оскільки воно працює також для проектів Makefile!
omikron

@ Jerk31 це не працює для Eclipse Juno, що працює на windows (для мене), я все ще бачу тих, хто скаржився на непотрібні помилки, незважаючи на те, що бінарний працює нормально. Будь ласка, допоможи мені!!!
переобмін

Мені дуже шкода, що не можу допомогти вам у Windows. У мене немає можливості спробувати виконати будь-який проект C ++ на цій ОС. Бажаю тобі найкращого і удачі!
Ієронім

13

Для Eclipse CDT Kepler те, що мені працювало, щоб позбутися std::threadневирішеного символу, це:

  1. Перейдіть до Налаштування-> C / C ++ -> Збірка-> Налаштування

  2. Виберіть вкладку «Відкриття»

  3. Виберіть Вбудовані настройки компілятора CDT GCC [Спільний]

  4. Додайте -std = c ++ 11 до поля "Команда для отримання специфікацій компілятора:" типу:

$ {COMMAND} -E -P -v -dD -std = c ++ 11 $ {ВХОДИ}

  1. Ок і відновити індекс для проекту.

Додавання прапорів -std=c++11до проекту Properties/C/C++ Build->Settings->Tool Settings->GCC C++ Compiler->Miscellaneous->Otherбуло недостатньо для Kepler, однак цього було достатньо для старих версій, таких як Helios.


Для версії Eclipse: 2019-09 р. Це рішення працювало на мене, проте я витратив багато часу до цього. Проблема була в налаштуваннях Builder: Project -> Properties -> C / C ++ Build: у вкладці "Settings Settings" виберіть "Internal builder" для "Type Builder".
grekhss

5

Я поки не можу коментувати, тому пишу власну відповідь:

Це пов'язано з __GXX_EXPERIMENTAL_CXX0X__і є дійсним для Eclipse Juno та CDT 8.x.

Деякі частини цієї відповіді вже висвітлюються в інших відповідях, але я хочу, щоб вона була узгодженою.

Щоб зробити можливим побудову за допомогою stdc ++ 11, потрібно додати певний прапор для компілятора. Це можна зробити за допомогою властивостей проекту. Для зміни властивостей проекту RMBта Project propertiesабо ALT + ENTER. Потім C / C ++ Build -> Налаштування -> Налаштування інструмента -> Компілятор GCC C ++ -> Різне -> Інші прапори. Поміщений -std = C ++ 11 в кінці лінії, для GCC це буде виглядати приблизно так: -c -fmessage-length=0 -std=c++11. Додавши -stdc ++ 11 компілятор прапора (GCC) оголосить __GXX_EXPERIMENTAL_CXX0X__сам.

На цьому етапі ви можете створити проект, використовуючи всі переваги C ++ 11.

Проблема полягає в тому, що Eclipse має власний парсер для перевірки помилок - ось чому ви все ще отримуєте всі неприємні помилки в редакторі Eclipse, в той же час ви можете створювати та запускати проект без будь-яких. Існує спосіб вирішити цю проблему, чітко оголосивши,__GXX_EXPERIMENTAL_CXX0X__ прапор для проекту, можна зробити це (так, як сказав Карстен Грейнер): C / C ++ Загальне -> Шляхи та символи -> Символи -> GNU C ++. Клацніть "Додати ..." та введіть попереднє __GXX_EXPERIMENTAL_CXX0X__(переконайтеся, що потрібно додати та додати два підкреслення) у "Ім'я" та залиште "Значення" порожнім. А тепер зайву частину, яку я хотів висвітлити у коментарі до першої відповіді, перейдіть до: C / C ++ General -> Preprocessor Include Path Macros etc. -> Providers and SelectCDT Managed Build Setting Entriesпотім натисніть кнопку ЗАСТОСУВАННЯ та поверніться до вкладки Записи під розділом GNU C ++ слід встановити записи налаштування керованої збірки CDT, перевірити, чи всередині є визначено, __GXX_EXPERIMENTAL_CXX0X__чи є це -> ЗАСТОСУВАТИ та відновити індекс, у вас має бути все добре.


3

У мене теж було кілька проблем (Ubuntu 13.04 64-розрядний, g ++ - 4,8, затемнення Juno 3.8.1, CDT 6.0.0). Дуже багато речей згадувалося вище, шкода повторювати це, але додатково у мене виникли проблеми з використанням

std::thread

як частина c ++ 11 (додавання -pthread для лінкера вирішує цю проблему). У будь-якому випадку, нарешті, ці налаштування спрацювали нормально:

Проект -> Властивості -> C / C ++ Build -> Налаштування -> Різне. Додайте

-std=c++11

прапор для компіляторів GCC та G ++. Натисніть Застосувати.

Для лінкера, це ж вікно, Різне, Прапор Linker, додано

-pthread

прапор. Налаштування спільної бібліотеки, Ім’я спільного об’єкта, додайте

-Wl,--no-as-needed

прапор теж. Натисніть Застосувати.

C / C ++ Загальне -> Шляхи та символи -> Символи TAB, GNU C ++ вибрано, Додати

__GXX_EXPERIMENTAL_CXX0X__

(немає значення)

прапор. Натисніть Застосувати.

C / C ++ Загальне -> Препроцесор Включити шляхи .. -> Вкладка Постачальники: перевірити

Вбудовані настройки компілятора CDT GCC

а для "Команди для отримання специфікацій компілятора" додайте

-std=c++11

прапор. Зніміть прапорець Поділитись. Натисніть Застосувати.

CDT Managages Build Setting Entries, перевірте це також. Зніміть прапорці двох інших. Натисніть Застосувати.

Повернувшись до вкладки "Записи", GNU C ++ CDT Керування налаштуваннями керування CDT, тепер вам слід побачити додані

__GXX_EXPERIMENTAL_CXX0X__

запис.

Це воно. При кодуванні, наборі тексту

std::

тепер може автоматично завершити клас потоку, наприклад, збірки повинні працювати нормально, а їх не повинно бути

std::system_error'what(): Enable multithreading to use std::thread: Operation not permitted

під час виконання.


Це був Project -> Properties -> C/C++ Build -> Settings -> Miscellaneousкрок, який працював на мене. Дякую купу: D
Jake88

2

Я не знаю, чи це лише я, рішення, яке займає найвищий рейтинг, не працює для мене, моя версія затемнення - це просто звичайна платформа затемнення, встановлена ​​за допомогою sudo apt-get install eclipse в Ubuntu. Але я знайшов рішення, яке разом застосовує метод як з найвищого рейтингу, так і з другого, що я зробив для того, щоб він працював, описано нижче (зауважте, що інші кроки, такі як створення проекту C ++ тощо, ігноруються для простоти)

Після створення проекту C ++

(1) C / C ++ Загальне -> Шляхи та символи -> Символи -> GNU C ++. Натисніть "Додати ..." та вставте GXX_EXPERIMENTAL_CXX0X (переконайтеся, що потрібно додати та додати два підкреслення) у "Ім'я" та залиште "Значення" порожнім.

(2) У розділі C / C ++ Build (у налаштуваннях проекту) знайдіть шлях включення до процесора та перейдіть на вкладку провайдерів. Зніміть виділення всіх параметрів, крім CDT GCC Builtin Compiler. Потім зніміть позначення налаштувань спільного доступу…. Додайте параметр -std = c ++ 11 в текстове поле під назвою Command, щоб отримати специфікатори компілятора

Після виконання вище 2 та 2 лише кроків, воно працює, затемнення здатне вирішити унікальний_ptr, я не знаю, чому це рішення працює, сподіваюся, що воно може допомогти людям.


Це теж працювало для мене (затемнення неону). Спочатку я не скасував вибір інших постачальників, що все ще викликало проблеми, але я скасував вибір усіх інших постачальників, окрім "Налаштування вбудованого компілятора CDT GCC" та "Налаштування користувача CDT". Дякую!
zpon

2

Eclipse C / C ++ не розпізнає символ std::unique_ptr навіть якщо ви включили заголовок пам'яті C ++ 11 у свій файл.

Якщо припустити, що ви використовуєте компілятор GNU C ++, це я зробив, щоб виправити:

Проект -> Властивості -> Загальне для C / C ++ -> До процесора включаються шляхи -> GNU C ++ -> Записи користувача з налаштування CDT

  1. Натисніть кнопку "Додати ..."

  2. У спадному меню виберіть "Макропроцесор"

    Name: __cplusplus     Value:  201103L
  3. Натисніть Застосувати, а потім ОК, щоб повернутися до свого проекту

  4. Потім відновіть індекс С ++: Проекти -> Індекс С / С ++ -> Перебудуйте


Це єдиний метод, який працював для мене в Eclipse 2018-12. "Прийнята" відповідь тощо більше не працює у 2018-12 роках.
Девід Штайнгауер

1

Для мене на Eclipse Neon я дотримувався відповіді Trismegistos тут , але я також додав додатковий крок:

  • Перейдіть до проекту -> Властивості -> Загальне на C ++ -> До процесора Включіть шляхи, макроси тощо -> Постачальники -> CDT Cross GCC Вбудовані настройки компілятора, додайте прапор "-std = c ++ 11"

Натисніть, застосуйте, і добре.

Ура,

Хлопець.


0
  • клацніть правою кнопкою миші проект та перейдіть до "Властивості"
  • C / C ++ Build -> Налаштування -> Налаштування інструмента -> Компілятор GCC C ++ -> Різне -> Інші прапори. Поставте -lm в кінці текстового поля інших прапорів і OK.

Яка версія Eclipse це?
Брайам

0

Ні хак, ні чистіша версія не працюють для Indigo. Злом ігнорується, а необхідні параметри конфігурації відсутні. Без жодної видимої причини будівництво почало працювати після того, як не працювало і не надало корисної причини. Принаймні з командного рядка я отримую відтворювані результати.


0

Щоб отримати підтримку C ++ 14 в Eclipse Luna, виконайте наступні дії:

  • В C++ General -> Preprocessor Include -> Providers -> CDT Cross GCC Built-in Compiler Settings, додайте "-std = c ++ 14"
  • В C++ Build -> Settings -> Cross G++ Compiler -> Miscellaneous, додайте "-std = c ++ 14"

Повторно налаштуйте свій проект і врешті перезапустіть Eclipse. Він повинен працювати так, як очікувалося.


0

Я вирішив це таким чином на Mac. Я використовував Homebrew для встановлення останньої версії gcc / g ++. Вони приземляються в / usr / local / bin з включеним в / usr / local / включають.

Я записав компакт-диск у / usr / local / bin і зробив симпосилання з g ++ @ 7, що б тільки не викликало g ++, що @ біта дратує.

Потім я перейшов до MyProject -> Властивості -> C / C ++ Build -> Settings -> GCC C ++ Compiler і змінив команду з "g ++" на "/ usr / local / bin / g ++". Якщо ви вирішите не робити символічне посилання, ви можете бути більш конкретними.

Зробіть те саме, що і для лінкера.

Застосувати та застосувати та закрити. Нехай воно відновлює індекс. Якийсь час він демонстрував жахливу кількість помилок, але я думаю, що це було під час створення індексів. Поки я з'ясовував помилки, всі вони зникли без подальших дій.


Я думаю, не підтверджуючи, що ви також можете зайти в Eclipse -> Властивості -> C / C ++ -> Core Build Toolchains і редагувати ті, які мають різні шляхи, але я не впевнений, що це буде робити.


0

У мене була схожа проблема з використанням Eclipse C ++ 2019-03 для змішаного проекту C та C ++, який використовував std :: необов’язковий та std :: swap. Що для мене працювало, це було. У проекті Властивості-> C / C ++ Build-> Settings-> Settings Settings>> Cross G ++ Compiler, видаліть -std = gnu ++ 17 з Різне та замістіть його у Dialect-> Other Dialect Flags.


0

Під час використання перехресного компілятора я часто отримую вдосконалені спеціальні системи побудови, ретельно створені колегами. Я використовую "Makefile Project з існуючим кодом", тому більшість інших відповідей не застосовуються.

На початку проекту я маю вказати, що я використовую крос-компілятор у майстрі для "Makefile Project з існуючим кодом". Прикро те, що в останні 10 або більше років кнопка перехресного компілятора цього майстра не підказує, де знаходиться хрестовий компілятор. Отже, на етапі, який вирішує проблему C ++ та крос-компілятор, я повинен перейти на вкладку провайдерів, як згадується у відповідях, таких як @ravwojdyla вище, але провайдера, якого я маю вибрати, є постачальник крос-компілятора. Потім у командному полі я прокладаю повний шлях до компілятора і додаю -std = gnu ++ 11 для стандарту C ++, для якого я хочу мати підтримку. Це виходить так само, як і можна було очікувати.

Це можна зробити для вже існуючого проекту. Єдине, що вам може знадобитися зробити - це повторний індекс.

Мені ніколи не доводилося додавати експериментальний прапор або переосмислювати визначення __cplusplus. Єдине, якщо у мене є значна кількість сучасного коду С, я ніде не можу розмістити стандартний параметр для С.

А коли справи йдуть дуже погано, отримання журналу аналізатора, використовуючи цю команду в підменю Indexer, може бути дуже інформативним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.