Size: a a a

2021 February 21

О

Олег in supapro.cxx
мыши
потому что у тебя рекурсия в меню
то есть нельзя вызывать саму функцию в этой же функции?
источник

О

Олег in supapro.cxx
сейчас прогонял много вариантов через отладчик, тоже дошел до вывода, что это ломает код
источник

м

мыши in supapro.cxx
Олег
то есть нельзя вызывать саму функцию в этой же функции?
можно, только нужно поведение правильно строить
источник

м

мыши in supapro.cxx
но вообще тут рекурсия не нужна никак
источник

О

Олег in supapro.cxx
мыши
можно, только нужно поведение правильно строить
не подскажешь, как будет правильно?
источник

м

мыши in supapro.cxx
например делать return после menu
источник

О

Олег in supapro.cxx
Да, в меню я уже так и сделал методом проб и ошибок)) Но вот вопрос.  Есть функция:
int inputfirstsystem(string allowed) // Ввод системы
{
   int system = 0;
   string systemstring;
   cout << "\nВведите исходную систему: ";
   getline(cin, systemstring);
   if (check(systemstring, allowed) == 1) // Проверка строки
   {
       inputfirstsystem(allowed);
       return system;
   }
   system = toDec(systemstring, 10); // Перевод строки в число
   if (system < 2 || system > 16)
   {
       cout << "\nВведите значение от 2 до 16!\n";
       inputfirstsystem(allowed);
       return system;
   }
   return system;
}
https://prnt.sc/102pidu Через отладчик проверил, что при таком вводе, когда несколько раз неправильно, а потом правильно (10), выводится все хорошо, но вот возвращает в функцию, где она вызывается, не 10, а 0. Как быть? Чтоб 10 возвращалось.
источник

V

Valeriy in supapro.cxx
мыши и олежа пытаются решить проблему, это забавно. я не знаком с синтаксисом некоторых тут вещей потому что сам учу с++ так что мыши и олежа я вам не помогу
источник

D

DockedFerret800 in supapro.cxx
Здравствуйте! Подскажите пожалуйста как можно перемеривать числа, мне нужно например порядок из 1 2 3 порешать к примеру на 2 3 1
источник

АВ

Александр Водянников... in supapro.cxx
источник

м

мыши in supapro.cxx
Олег
Да, в меню я уже так и сделал методом проб и ошибок)) Но вот вопрос.  Есть функция:
int inputfirstsystem(string allowed) // Ввод системы
{
   int system = 0;
   string systemstring;
   cout << "\nВведите исходную систему: ";
   getline(cin, systemstring);
   if (check(systemstring, allowed) == 1) // Проверка строки
   {
       inputfirstsystem(allowed);
       return system;
   }
   system = toDec(systemstring, 10); // Перевод строки в число
   if (system < 2 || system > 16)
   {
       cout << "\nВведите значение от 2 до 16!\n";
       inputfirstsystem(allowed);
       return system;
   }
   return system;
}
https://prnt.sc/102pidu Через отладчик проверил, что при таком вводе, когда несколько раз неправильно, а потом правильно (10), выводится все хорошо, но вот возвращает в функцию, где она вызывается, не 10, а 0. Как быть? Чтоб 10 возвращалось.
та же проблема
источник

м

мыши in supapro.cxx
Олег
Да, в меню я уже так и сделал методом проб и ошибок)) Но вот вопрос.  Есть функция:
int inputfirstsystem(string allowed) // Ввод системы
{
   int system = 0;
   string systemstring;
   cout << "\nВведите исходную систему: ";
   getline(cin, systemstring);
   if (check(systemstring, allowed) == 1) // Проверка строки
   {
       inputfirstsystem(allowed);
       return system;
   }
   system = toDec(systemstring, 10); // Перевод строки в число
   if (system < 2 || system > 16)
   {
       cout << "\nВведите значение от 2 до 16!\n";
       inputfirstsystem(allowed);
       return system;
   }
   return system;
}
https://prnt.sc/102pidu Через отладчик проверил, что при таком вводе, когда несколько раз неправильно, а потом правильно (10), выводится все хорошо, но вот возвращает в функцию, где она вызывается, не 10, а 0. Как быть? Чтоб 10 возвращалось.
вам в функциональное программирование надо попробовать, ход мысли как раз туда =)
источник

АК

Александр Караев... in supapro.cxx
Олег
Да, в меню я уже так и сделал методом проб и ошибок)) Но вот вопрос.  Есть функция:
int inputfirstsystem(string allowed) // Ввод системы
{
   int system = 0;
   string systemstring;
   cout << "\nВведите исходную систему: ";
   getline(cin, systemstring);
   if (check(systemstring, allowed) == 1) // Проверка строки
   {
       inputfirstsystem(allowed);
       return system;
   }
   system = toDec(systemstring, 10); // Перевод строки в число
   if (system < 2 || system > 16)
   {
       cout << "\nВведите значение от 2 до 16!\n";
       inputfirstsystem(allowed);
       return system;
   }
   return system;
}
https://prnt.sc/102pidu Через отладчик проверил, что при таком вводе, когда несколько раз неправильно, а потом правильно (10), выводится все хорошо, но вот возвращает в функцию, где она вызывается, не 10, а 0. Как быть? Чтоб 10 возвращалось.
вероятно, заменить
inputfirstsystem(allowed);
return system;

на
return inputfirstsystem(allowed);
источник

MK

Mikhail Kornaukhov in supapro.cxx
Всем привет!
auto foo() { return pair<std::string, std::string>{"lol", "kek"};}
...
auto [f, s] = foo();

Что тут произойдет? в f и s мувнутся эти строки, или мб скопируются? Или что то типа copy elision произойдет и вообще не будет копи\мув к-торов?
источник

q

qq in supapro.cxx
boost-question : чтобы была статик библиотека ее же нужно скомпилировать, когда я выполняю такие:


5.2.1   Install Boost.Build

Boost.Build is a text-based system for developing, testing, and installing software. First, you'll need to build and install it. To do this:

   Go to the directory tools/build/.
   Run bootstrap.sh
   Run b2 install --prefix=PREFIX where PREFIX is the directory where you want Boost.Build to be installed
   Add PREFIX/bin to your PATH environment variable.


верно?
источник

q

qq in supapro.cxx
по идеи это создает стат либру
источник

LA

Liber Azerate in supapro.cxx
Mikhail Kornaukhov
Всем привет!
auto foo() { return pair<std::string, std::string>{"lol", "kek"};}
...
auto [f, s] = foo();

Что тут произойдет? в f и s мувнутся эти строки, или мб скопируются? Или что то типа copy elision произойдет и вообще не будет копи\мув к-торов?
Ну здесь будет очевидное mandatory RVO с 17-го стандарта
источник

АВ

Александр Водянников... in supapro.cxx
Mikhail Kornaukhov
Всем привет!
auto foo() { return pair<std::string, std::string>{"lol", "kek"};}
...
auto [f, s] = foo();

Что тут произойдет? в f и s мувнутся эти строки, или мб скопируются? Или что то типа copy elision произойдет и вообще не будет копи\мув к-торов?
По идее копия.
источник

LA

Liber Azerate in supapro.cxx
С чего вдруг?
источник

LA

Liber Azerate in supapro.cxx
Этот объект, скорее всего, будет создан на месте
источник