Size: a a a

2020 October 14

PS

Pavel Samolysov in pro.cxx
Oleg Linkin
Использовать mutable для того, чтобы сделать lazy-initialization в const геттере - плохой дизайн или лучше убрать конст с функции?
Вот здесь говорят, что это даже рекомендуемый дизайн https://youtu.be/XkDEzfpdcSg
источник

AS

Alex Sandrov in pro.cxx
Alexander Malkov
Советую посмотреть в сторону pugixml, быстрая, C++ библиотека, удобная
Спасибо
источник

D

Danya in pro.cxx
PRoSToC0der
там и RAII небось отсутствует?
Должно быть
источник

E

Egor in pro.cxx
Где можно найти практические задания на C#?
источник

ID

In Dev in pro.cxx
Egor
Где можно найти практические задания на C#?
Первое практическое задание - научиться отличать C++ от C#
источник

ID

In Dev in pro.cxx
@Comunicad1 А вообще любой сайт с задачками вроде Codewars, HackerRank, Coderbyte, LeetCode, Topcoder, (тысячиих) имеет возможность отправить ответ на разных языках
источник

ID

In Dev in pro.cxx
Если спортивное программирование не так интересно, и хочется чего-то прикладного - в сети куча списков, которые легко гуглятся по запросам "projects to practice programming" или "programming challenges"
источник

m

magras in pro.cxx
Будем мериться авторитетами? На моей стороне Саттер и то что я видел эту ошибку в дикой природе.
источник

AS

Alex Sandrov in pro.cxx
Egor
Где можно найти практические задания на C#?
а ещё можно(независимо от языка/технологий):
1. фрилансить
2. напроситься в опер-сорс проект, или любую команду
3. самому придумать себе задачу на основе какой-то реальной проблемы, которую нужно решить.
источник

PS

Pavel Samolysov in pro.cxx
Причём тут меряться просто есть и другое мнение а ещё есть и однопоточные программы причём довольно сложные, тот же clang и там такой подход с мутэйбл вполне себе применим
источник

ПК

Побитый Кирпич... in pro.cxx
Alex Sandrov
а у меня ещё вопрос: using namespace std; в заголовочных файлах - это моветон? Вчера, гоняя xml по проекту, настраивал компилятор и словил проблему с std::byte, искал в интернете, и там была фраза, типа "кто-то почему-то вставил в заголовок using namespace std;"
Вредительство
источник

ПК

Побитый Кирпич... in pro.cxx
Alex Sandrov
А в c++ работы с xml ещё нету?
А будет?
Раньше пользовался boost::prpoery_tree, но вчера пришлось побегать с optional, разгоняя хедеры по разным углам проекта, и как-то мне это не нравится
Миллиард библиотек - выбирай
источник

m

magras in pro.cxx
Pavel Samolysov
Причём тут меряться просто есть и другое мнение а ещё есть и однопоточные программы причём довольно сложные, тот же clang и там такой подход с мутэйбл вполне себе применим
Да, но я и не говорил, что так делать нельзя ни при каких обстоятельствах. Я всегда говорил о том, что прежде чем написать такой код нужно взвесить все плюсы и минусы. На мой взгляд минусов у mutable больше.

Ну и можно же написать враппер, который не будет скрывать что происходит.

struct LazyValue {
 T& get() { if (!m_value) init(); return *m_value; }
 const T& get_const() { if (!m_value) init(); return *m_value; }
private:
 void init();
 std::optional<int> m_value;
};
источник

AS

Alex Sandrov in pro.cxx
Побитый Кирпич
Миллиард библиотек - выбирай
Ну вот хотелось "из коробки" 😑
источник

АК

Александр Караев... in pro.cxx
Alex Sandrov
Ну вот хотелось "из коробки" 😑
из коробки в C++ практически ничего нет, плюсану к pugixml - очень удобная
источник

ПК

Побитый Кирпич... in pro.cxx
magras
Да, но я и не говорил, что так делать нельзя ни при каких обстоятельствах. Я всегда говорил о том, что прежде чем написать такой код нужно взвесить все плюсы и минусы. На мой взгляд минусов у mutable больше.

Ну и можно же написать враппер, который не будет скрывать что происходит.

struct LazyValue {
 T& get() { if (!m_value) init(); return *m_value; }
 const T& get_const() { if (!m_value) init(); return *m_value; }
private:
 void init();
 std::optional<int> m_value;
};
const метода всё равно нет, а надо
источник

m

magras in pro.cxx
Побитый Кирпич
const метода всё равно нет, а надо
Здесь LazyValue - это контейнер. const будет на том что лежит внутри. В моем примере это int.
источник

ПК

Побитый Кирпич... in pro.cxx
Alex Sandrov
Ну вот хотелось "из коробки" 😑
Если попробовать манагер пакетный для с++, то можно сгладить эту досадность
источник

AS

Alex Sandrov in pro.cxx
Побитый Кирпич
Если попробовать манагер пакетный для с++, то можно сгладить эту досадность
Что это? Это новое из 20?
источник

ПК

Побитый Кирпич... in pro.cxx
magras
Здесь LazyValue - это контейнер. const будет на том что лежит внутри. В моем примере это int.
Дак как ты такой класс членом сделаешь и чтоб get_T() был const?
источник