Max
а подскажите еще, как впихнуть std::result_of в мой пример?
Max
что ему положить в темлейт?
Igor
м.б. я не совсем понял задачу, но почему не сделать так? https://godbolt.org/g/T66By6
Max
Max
А нельзя связать Getter get с T* t, там через std::bind или как-то еще, чтоб можно было обращаться к Getter get к самостоятельной функции?
Danil
ну так сделай bind, чтобы это был просто функтор
Danil
bind тебе выдаст объект типа std::function<int()>
Berkus
Max
я понял, спасибо
Berkus
вообще bind нинужен
Berkus
т.к. в твоем случае вообще надо биндить shared_from_this() иначе ты рискуешь вызывать свой гет на уже убитом объекте
Berkus
лямбды нагляднее
Daria
Всем доброго вечера. Есть проблема исключительно чайниковского характера. Среда - Codebloks. Есть многофайловый проект, который мы пытаемся собрать. При попытке это сделать среда грустно пишет, что не нашла объектный файл там, где он с точки зрения среды( и моей) должен быть. Смотрим в папочку - действительно. Нет файла. Берем команду, которой среда клепает объектный файл, скармливаем командной строке и воуля. Файл на месте. Путь указан в настройках вроде как верный. В чем может быть проблема?
Berkus
Berkus
проект code::blocks как сгенерирован, чем?
Daria
Daria
странно что команды, скопированные из билдлога в консоли отлично отрабатывают. И кстати потом C::B их отлично видит. до очистки каталога .obj/
Daria
всё отлично, только ничего не работает :)
Berkus
ну я конечно biased но для начала я бы сгенерировал этот проект из cmake
Berkus
Berkus
make нинужен
Vsevolod
базовые вещи в cmake делаются элементарно
Daria
Berkus
Berkus
если одна среда не может reproducibly сделать одно и то же на двух разных машинах - такая среда не нужна
Berkus
Berkus
C другой стороны, если ты фанат мазохизма - не буду мешать.
Daria
Проблема решена, землекопа полтора - проблема в версии. cmake - это круто, но пока его освоение откладывается до следующего проекта)
Berkus
Berkus
я это сразу и предложил
Anatoly
@antoshkka ребят, а в std::optional решили не поддерживать reference type по причине того, что в этом случае можно обойтись указателем?
скажем, была у меня функция, которая возвращала boost::optional с ссылочным типом, чтобы не копировать value из поискового метода:
boost::optional<foo const&> find_foo_or_none(...);
...
auto f = find_foo_or_none();
if( f ) {
auto&& v = *f;
}
группа по стандартизации считает, что это не кейс для std::optional и можно обойтись:
foo const* find_foo_or_none(...);
...
auto f = find_foo_or_none(...);
if( f ) {
auto&& v = *f;
}
?
Igor
🐙 Antony
🐙 Antony
Anatoly
Igor @antoshkka спасибо за разъяснение!
Anonymous
А тут по инф. без. люди есть?
Anatoly
почему? есть значение, беру по ссылке, не копируя, нет ссылки, ну на нет и суда нет:
template<typename T>
class reference_optional {
T* ref_;
public:
reference_optional() : ref_(nullptr) {}
explicit reference_optional(T &r) : ref_(&r) {}
bool has_value() const {return ref_ != nullptr;}
T const& value() const {return *ref_;}
};
`
Anatoly
то есть для моего кейса был бы нужен readonly_optional, если бы он был, который бы работал как std::reference_wrapper с возможностями std::optional, как и написал Антон.
kitsu
Anonymous
Я прост на буд спросил.)
Arseny
На оборот же. optional часто как раз хочется для объектов у которых не бывает пустых значений.
Anatoly
между тем этот use case поддерживает boost::optional для замены указателя, ну а так-то да, я об этом в исходном вопросе написал.
babysitter
может кто знает, можно ли в Poco::Util::Option сделать _группу_ опций required?
Anonymous
babysitter
не обязательно конфиги, можно и простой cli так парсить. ну короче логика там на самом деле простая, одна проверка и исключение кинуть. просто обидно, что хелп кривовато выглядит из-за того, что руками
Berkus
docopt используй да и всё
Alexander "SonnySlave"
хм, какую-то ещё штуку только что нашёл бесплатную для анализ опенсорс проектов. Пробовал кто-нибудь?
https://about.sonarcloud.io/
Aidar
Vsevolod
@zamazan4ik сейчас попробую :)
Alexander "SonnySlave"
мб тут есть из пивас кто-нибудь?
Vsevolod
у меня есть уже coverity
Vsevolod
пивас как-то не особо адекватно относились к опенсорсу
Vsevolod
ERROR: ld.so: object '/home/cebka/build-wrapper-linux-x86/libinterceptor-${PLATFORM}.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Vsevolod
пока вот так
Berkus
Vsevolod
раньше не был
Alexander "SonnySlave"
для хедеров ничего добавлять не надо - бесплатно проверяет
Vsevolod
"у" - удобство по-русски
Vsevolod
я бы это назвал другим словом на букву "у"
Vsevolod
на опеннете бойцы сразу же этот пивас поломали
Vsevolod
поэтому я просканил ломанным
Vsevolod
не впечатлился совершенно
Vsevolod
да
Vsevolod
но зачем мне ломанный пивас, который не находит ничего полезного?
Alexander "SonnySlave"
не знаю. А мне понравился, так как находил баги
Berkus
пивас много чего полезного находит
Vsevolod
а у меня ничего