Size: a a a

2020 November 09

IZ

Ilia Zviagin in pro.cxx
Alexander Arbuzov
Ребят, такой вопрос. Если я хочу реализовать логические операции типа объединения, пересечения, симметрической разности и т.д., то для этого мне необходимо задать некоторые переменные с определёнными значениями, опериуя с которыми я могу получить результат логических операций. Вопрос. А возможно ли реализовать логические операции без конкретных значений, т.е. не для вычисления значения, а для упрощения заданного логического выражения? Например (A U B)C = AC U BC
Нет нельзя.
Символьные вычисления в С++ не поддерживаются.
источник

IZ

Ilia Zviagin in pro.cxx
Alexander Arbuzov
Какой?
Вольфрам,
источник

AA

Alexander Arbuzov in pro.cxx
Это калькулятор
источник

AK

Andrei K in pro.cxx
Maple, Sage, Wolfram, либы на питоне, хаскелле
источник

AK

Andrei K in pro.cxx
Матлаб не умеет по-моему в символные вычисления.
источник

AK

Andrei K in pro.cxx
Или только в самые простейшие. Тут вопрос именно про алгебру, а не про вычислительные методы.
источник

IZ

Ilia Zviagin in pro.cxx
Так, вопрос закрыт.
Оффтопик прекращаем
источник

AA

Alexander Arbuzov in pro.cxx
Спасибо)
источник

VO

Vyacheslav Olkhovche... in pro.cxx
Constantine Drozdov
struct aggregate {
   int x;
   int & y = x;
   int & z = y;
};

int main() {
   int test = 0;
   aggregate g{ .z = test, .x = 5 };
}

в каком, говорите, порядке выполнять?
Слева направо, а что? Но я не уверен что третье поле инициализируется корректно.
источник

АР

Андрей Руссков... in pro.cxx
слева направо, сверху вниз... А как в стандарте то? )
источник

АК

Александр Караев... in pro.cxx
Андрей Руссков
слева направо, сверху вниз... А как в стандарте то? )
в стандарте такая чушь запрещена, только в порядке объявления полей можно их инициализировать
источник

VO

Vyacheslav Olkhovche... in pro.cxx
Тоже слева направо (не читал)
источник

АР

Андрей Руссков... in pro.cxx
Александр Караев
в стандарте такая чушь запрещена, только в порядке объявления полей можно их инициализировать
оп-па. Даже в designated initializers из c++20?
источник

D

Danya in pro.cxx
Андрей Руссков
оп-па. Даже в designated initializers из c++20?
Да
источник

АК

Александр Караев... in pro.cxx
Андрей Руссков
оп-па. Даже в designated initializers из c++20?
именно о них речь и идёт
источник

АР

Андрей Руссков... in pro.cxx
Мммммда )
источник

АР

Андрей Руссков... in pro.cxx
я думал их задача собственно и была решить проблему "инициализировать надо в прямом порядке"
источник

АК

Александр Караев... in pro.cxx
Андрей Руссков
я думал их задача собственно и была решить проблему "инициализировать надо в прямом порядке"
чего?
источник

АК

Александр Караев... in pro.cxx
Андрей Руссков
я думал их задача собственно и была решить проблему "инициализировать надо в прямом порядке"
это не проблема, а требование (следствие порядка вызова деструкторов), которое все вечно любили нарушать, инициализируя поля в конструкторе абы как (получая варнинги, в крайнем случае).
хоть с designated initializers не накосячили - сразу запретили
источник

АР

Андрей Руссков... in pro.cxx
хм. Просто раньше я думал что можно сделать что-то типа

struct S { .... };
void foo(S s);
foo({.a = 15, .x = 4, .b = "foo"});
источник