
Alex Фэils?︙
27.02.2017
15:52:35

Алексей
27.02.2017
17:13:22
Всем привет. Собрал в одном месте все чаты для программистов - @Chats_Developers, пользуйтесь на здоровье. Ваш чат у нас тоже есть, не удаляйте это сообщение.

Dmitry
27.02.2017
17:16:32
Всем доброго времени суток

Kotbegemot
27.02.2017
17:21:32
кто знает алгоритм хеша укоторого сохранятеся свояство сартировоймости то есть a<b => h(a)<h(b) ???

Google

Gans
27.02.2017
17:23:24
Кто шифровальщик типа gpg или pgp написать может

Peter
27.02.2017
17:23:45

Gans
27.02.2017
17:24:42
Не знаю, чтобы сообщения шифровать и даже цру или ГРУ не могли прочитать

Andrei
27.02.2017
17:24:56

Kotbegemot
27.02.2017
17:27:50

Stanislav
27.02.2017
21:02:18
https://github.com/yandex/ClickHouse/issues/220
?

Vladislav
27.02.2017
21:08:30

Artem
27.02.2017
21:13:09
лаал

Alejandro
27.02.2017
22:03:23
ReactOS has been accepted for GSOC'17
https://reactos.org/project-news/reactos-has-been-accepted-gsoc17

Oleg
27.02.2017
22:13:38
Кто пробовал это чудо?

Anna
27.02.2017
23:45:58
ребята, lex с с++ работает? или лучше взять yacc?

Vladislav
27.02.2017
23:47:11

Google

Vladislav
27.02.2017
23:47:30
какая у тебя задача?


Anna
27.02.2017
23:49:23
у меня очень туманное тз, насколько я понимаю - нужен CFG парсер и тест кейсы для него
Create a recursive descent parser for the CFG given. You may use the test programs at the end to test your parser. Be sure to realize that this is not an exhaustive test of your parser and you should develop as many test cases as you can think of.Put lexical analyzer and parser programs in a zip file. Use proper data abstraction techniques when you write your program. This means that the parser and lexical analyzers need to be in separate source files. Include any other needed programs so that they will compile without modification. To ensure that the program is indeed legal your parser must terminate with the end of file token!
Given grammar for a subset of Ada:
Prog -> procedure idt Args is
DeclarativePart
Procedures
begin
SeqOfStatements
end idt;
DeclarativePart -> IdentifierList : TypeMark ; DeclarativePart | e
IdentifierList -> idt |
IdentifierList , idt
TypeMark -> integert | realt | chart | const assignop Value
Value -> NumericalLiteral
Procedures -> Prog Procedures | e
Args -> ( ArgList ) | e
ArgList -> Mode IdentifierList : TypeMark MoreArgs
MoreArgs -> ; ArgList | e
Mode -> in | out | inout | e
SeqOfStatments -> e
Test Programs
The simplest Ada program is then:
PROCEDURE one IS
BEGIN
END one;
A more typical program would be
PROCEDURE MAIN IS
PROCEDURE PROC1 IS
BEGIN
END PROC1;
BEGIN
END MAIN;
A more complicated program would look like
PROCEDURE seven IS
count:CONSTANT:=5;
a,b:INTEGER;
PROCEDURE eight(x:INTEGER; y:INTEGER) IS
BEGIN
END eight;
BEGIN
END seven;
Finally, you could use this program too!
procedure five is
a,b,c,d:integer;
procedure fun(a:integer; out b:integer) is
c:integer;
begin
end fun;
begin
end five;
я правда не сильно понимаю, причем тут Ада... о_О... может в качестве примера просто


Vladislav
27.02.2017
23:51:11
правда приведенная граматика неполна

Anna
27.02.2017
23:51:45
я просила уточнения, но ничего добиться не получилось...я в аде не шарю просто

Stanislav
27.02.2017
23:52:13
дак грамматика дана

Vladislav
27.02.2017
23:52:20
например, что есть idt? Ясно что identifier, но не ясно, как он определен

Anna
27.02.2017
23:52:43
это вообще лаба чья-то

Vladislav
27.02.2017
23:53:23
задание не гуглится(

Anna
27.02.2017
23:54:57
я уже третий день пытаюсь врубиться в это тз - но все тщетно, сам заказчик не дал больше подробностей, кроме того, что все файлы нужно буде залить на какой-то сервак на лине через ssh
>_<

Vladislav
27.02.2017
23:56:20
нафиг таких заказчиков, имхо)

Igor
28.02.2017
07:17:15

Grigor
28.02.2017
07:27:57

Google

Alex Фэils?︙
28.02.2017
09:20:02
Друзья! Мы вместе с коллегами из РГ21 проводим опрос: "Знаете ли вы, что такое Рабочая группа 21 С++ и чем она занимается?"
Результаты опроса помогут нам лучше спланировать работу, мероприятия и удобные для разработчиков каналы коммуникации. Пройти опрос можно по этой ссылке: https://events.yandex.ru/surveys/4340/
Спасибо
#isocpp #stdcpp #wg21 #survey
Продублирую тут тож

Anton
28.02.2017
09:55:01
Други, а подскажите можно из метода класса сделать функциональный объект? В примерах не нашел, только структура с перегрузкой оператора (). У меня есть вектор функциональных объектов и есть отдельный объект а с методом print. Вот я хочу тупо v.push_back(a.print) сделать.

Ibragim
28.02.2017
09:58:27
Не уверен, что правильно понял, но может из print вернуть функциональный объект?

Tema
28.02.2017
09:58:28

Anton
28.02.2017
09:59:14
print это просто пример. Методы разные могут быть
Может я запутанно написал))

Ibragim
28.02.2017
10:02:22
Не понял для чего это нужно. Но метод должен возвращать объект типа, который можно хранить в векторе v, или должен приводиться к этому типу.

Alex Фэils?︙
28.02.2017
10:03:05

Andrei
28.02.2017
10:05:03
Или баинд.

Anton
28.02.2017
10:09:06
Еще раз опишу чуть понятнее. Есть у меня std::vector<std::function> В него передаются некоторые _обычные_ функции для того, чтобы их можно по определенному событию вызывать все разом и все было хорошо. Но тут образовался класс(который является синглтоном и существует _всегда_ пока программа работает) у которого есть метод, назовем его sync(). Вот я хотел бы вызывать этот метод наравне с теми функциями из вышеуказанного вектора. Согласен, что это может быть адище, но архитектура уже была и переделывать никто ничего не будет)), поэтому надо как-то извертеться))

Ibragim
28.02.2017
10:13:43
это не подходит? http://stackoverflow.com/questions/7582546/using-generic-stdfunction-objects-with-member-functions-in-one-class

Anton
28.02.2017
10:16:58
Чувствую треш какой-то))

Ibragim
28.02.2017
10:19:46
» Но мне не очень понятно &Foo::sync
это взятие адреса у метода. В bind передается адрес функции (метода) и параметр, который будет подставляться. Метод принимает неявно this, поэтому передается this в bind.

Anton
28.02.2017
10:22:00
ага, взятие адреса мне ясно. Пространство имен класса Foo мне тоже понятно. Вопрос это взятие адреса метода _объекта_ или метода _класса_? (у меня тут срабатывает некая аналогия с python и метода __call__()).

Ibragim
28.02.2017
10:22:55
Методы это те же функции, только принимают неявно указатель на объект.

Admin
ERROR: S client not available

Anton
28.02.2017
10:24:20
да я понимаю что такое методы)) Вопрос в &Foo::sync относится к объкту типа Foo или классу Foo? и как это будет выглядить если у меня 2 объекта типа Foo

Denis
28.02.2017
10:25:14
К классу

Google

Anton
28.02.2017
10:26:26
воооот) тогда след. вопрос. если у меня есть два объекта foo1 foo2 типа Foo, то как интерпретировать &Foo::sync?

Denis
28.02.2017
10:26:43
биндить объект

Anton
28.02.2017
10:27:03
ну т.е. bind(&foo.sync) ?
без & наверное

Denis
28.02.2017
10:27:21
В пайтоне, например, методы класса это простые функции, живущие в пространстве имён класса, и принимающие объект первым аргументом, так?
Ну вот тут то же самое почти

Anton
28.02.2017
10:27:33
так, примерно

Denis
28.02.2017
10:27:41
объект биндишь как первый аргумент

Плюшка
28.02.2017
10:28:06
http://ru.cppreference.com/w/cpp/utility/functional/bind

Anton
28.02.2017
10:28:09
короче в плюсах просто передача this неявная
насколько я понял

Ibragim
28.02.2017
10:28:40
Не проверял, но по смыслу так
auto f = &Foo:sync; // адрес метода
f(&foo1); // foo1.sync
f(&foo2); // foo2.sync

Denis
28.02.2017
10:29:50
Охохох

Anton
28.02.2017
10:30:32
ладно, буду пробовать. надо бы разобраться в функциональных объектах и биндинге получше. плаваю пока в этом)) спасибо!

Denis
28.02.2017
10:31:22
MyClass myObj1;
MyClass myObj2;
auto func = std::bind( &MyClass::Method, myObj1 );
func(); // myObj1.Method();
Что делать, если есть другие аргументы
class MyClass{
public:
void Method( int, std::string );
};

Denis
28.02.2017
10:33:08

Anton
28.02.2017
10:33:24
waaat?)) т.е. при биндинге передаем указатель на метод а агрументом тащим сам объект?

Denis
28.02.2017
10:34:38
namespase ph = std::placeholder;
auto func = std::bind( &MyClass::Method, myObj1, 100, ph::1 );
func( "string" ); // myObj1.Method( 100, "string" );

Google

Denis
28.02.2017
10:35:08
Объект это просто первый аргумент метода
Просто неявный

Anton
28.02.2017
10:35:37