Size: a a a

2021 February 26

MK

Mikhail Kalugin in supapro.cxx
Ilia Zviagin
Там написано: "ЭТО НЕ СТАНДАРТ, ЭТО ЧЕРНОВИК!"
«Рабочий черновик»
источник

D

Danya in supapro.cxx
theadla
а чем черновик отличается?
Final working draft обычно малозначительно отличается от самого стандарта
источник

D

Danya in supapro.cxx
источник

D

Danya in supapro.cxx
Здесь есть ссылки на все final working draft
источник

t

theadla in supapro.cxx
пасиба
источник

AS

Anatoly Shirokov in supapro.cxx
theadla
пасиба
Из стандарта еще никто живым не выходил, аккуратнее там
источник

t

theadla in supapro.cxx
я классы попробовал, вродь с 20 раза читается круто
источник

AS

Anatoly Shirokov in supapro.cxx
theadla
я классы попробовал, вродь с 20 раза читается круто
Для практического использования cppref достаточно
источник

IZ

Ilia Zviagin in supapro.cxx
theadla
я классы попробовал, вродь с 20 раза читается круто
Читай CPR, если рвёшься. Там всё то же, но человечьим языком. Ну, почти...
источник

t

theadla in supapro.cxx
а че это?
источник

t

theadla in supapro.cxx
источник

IZ

Ilia Zviagin in supapro.cxx
theadla
а че это?
Выше же написал
cppreference.com
источник

VS

Vladimir Suisei in supapro.cxx
https://www.man7.org/linux/man-pages/man7/signal-safety.7.html

Существует вот такой список. Можно ли как-то проверить, есть ли в моем хендлере небезопасные функции автоматически?
источник

m

mixa secret in supapro.cxx
Всем привет, я делаю программу типа quiz app, у меня есть
std::vector<IQuestion*>
,IQuestion:
class IQuestion
{
public:
   IQuestion()
   {
       printf("IQuestion Creation\n");
   }
   virtual bool Answer(shsize) = 0;
   virtual void LoadFromJson(const json&) = 0;
   virtual void FillJson(json&) = 0;
   virtual void DrawBuilder() = 0;
   virtual eQuestionType getType() = 0;
   virtual std::string getText() = 0;
};

и классы

class ChoiseQuestion : public  IQuestion
{
private:
   std::vector<std::string> m_options;
   shsize m_rightOptionID;
   std::string m_text;
public:
   ChoiseQuestion();
   void LoadFromJson(const json&) override;
   void FillJson(json&) override;
   void DrawBuilder() override;
   bool Answer(shsize) override;
   eQuestionType getType() override
   {
       return eQuestionType::Choise;
   }
   std::string getText() override
   {
       return m_text;
   }
};


class SequenceQuestion : public IQuestion
{
private:
   std::vector<std::string> m_options;
   std::vector<int> m_rightSequence;
   std::string m_text;
public:
   SequenceQuestion();
   void LoadFromJson(const json&) override;
   void FillJson(json&) override;
   void DrawBuilder() override;
   bool Answer(shsize) override;
   eQuestionType getType() override
   {
       return eQuestionType::Sequence;
   }
   std::string getText() override
   {
       return m_text;
   }
   //bool Answer(const std::vector<int>&)override;
};

class RatioQuestion : public  IQuestion
{
private:
   std::vector<std::vector<std::string>> m_tables;
   std::vector<int> m_rightRatio;
   std::string m_text;
public:
   RatioQuestion();
   void LoadFromJson(const json&) override;
   void FillJson(json&) override;
   void DrawBuilder() override;
   bool Answer(shsize) override;
   eQuestionType getType() override
   {
       return eQuestionType::Ratio;
   }
   std::string getText() override
   {
       return m_text;
   }
   //bool Answer(const std::vector<int>&)override;
};

но когда я пушу в вектор например new RatioQuestion() и потом ещё new SequenceQuestion, у меня в векторе оказывается два RatioQuestion, тоесть первый дублируется
Как мне их разделить?
раньше я использовал std::variant
источник

VS

Vladimir Suisei in supapro.cxx
Vladimir Suisei
https://www.man7.org/linux/man-pages/man7/signal-safety.7.html

Существует вот такой список. Можно ли как-то проверить, есть ли в моем хендлере небезопасные функции автоматически?
Ставя вопрос шире, можно ли как-то получить список вызываемых сисколов внутри конкретной функции?
источник

IG

Ivan Grechka in supapro.cxx
Вопрос.

Мне сказали сделать вместо 6 геттеров и сеттеров два метода, один гет один сет, впринципе понятно.Но проблема  в том, что раньше у меня к примеру был getName я мог к нему обратиться вот так  idk[slot].getName. Но сейчас выдает ошибку и понятно почему и вопрос таков - Как обратиться к одному имени или установить значения для одной переменной, используя только два таких метода?

 void SetAll(string _name,
       string _information,
       int _dateofCreation,
       int _numberofPages,
       int _numberofCreators,
       string _Autors)
   {
       this->name = _name;
       this->information = _information;
       this->dateofCreation = _dateofCreation;
       this->numberofPages = _numberofPages;
       this->numberofCreators = _numberofCreators;
       this->Autors = _Autors;
   }

   void GetAll()
   {
       cout << "Имя: " << this->name << endl;
       cout << "Дата создания: " << this->dateofCreation << endl;
       cout << "Имя автора(oв): " << this->Autors << endl;
       cout << "Количество создателей: " << this->numberofCreators << endl;
       cout << "Количество страниц: " << this->numberofPages << endl;
       cout << "Информация про книгу: " << this->information << endl;
   }
источник

ID

In Dev in supapro.cxx
Ivan Grechka
Вопрос.

Мне сказали сделать вместо 6 геттеров и сеттеров два метода, один гет один сет, впринципе понятно.Но проблема  в том, что раньше у меня к примеру был getName я мог к нему обратиться вот так  idk[slot].getName. Но сейчас выдает ошибку и понятно почему и вопрос таков - Как обратиться к одному имени или установить значения для одной переменной, используя только два таких метода?

 void SetAll(string _name,
       string _information,
       int _dateofCreation,
       int _numberofPages,
       int _numberofCreators,
       string _Autors)
   {
       this->name = _name;
       this->information = _information;
       this->dateofCreation = _dateofCreation;
       this->numberofPages = _numberofPages;
       this->numberofCreators = _numberofCreators;
       this->Autors = _Autors;
   }

   void GetAll()
   {
       cout << "Имя: " << this->name << endl;
       cout << "Дата создания: " << this->dateofCreation << endl;
       cout << "Имя автора(oв): " << this->Autors << endl;
       cout << "Количество создателей: " << this->numberofCreators << endl;
       cout << "Количество страниц: " << this->numberofPages << endl;
       cout << "Информация про книгу: " << this->information << endl;
   }
Никак, вы что-то не так поняли в требованиях
источник

VS

Vladimir Suisei in supapro.cxx
Я конечно не гений ООП но зачем нужны геттеры и сеттеры если можно просто сделать поле публичным, или возвращать ссылку?
источник

ID

In Dev in supapro.cxx
Vladimir Suisei
Я конечно не гений ООП но зачем нужны геттеры и сеттеры если можно просто сделать поле публичным, или возвращать ссылку?
Если есть какая-то дополнительная логика как правило
источник

ID

In Dev in supapro.cxx
Либо нужно закрыть на чтение/запись
источник