
Дед Пегас
12.07.2017
12:45:14
Прелюбопытнейшая дискуссия, товарищи плюсачи. https://www.reddit.com/r/cpp/comments/6mpbtr/why_are_stdtuples_constructors_all_noexceptfalse/

Constantine
12.07.2017
13:27:52
а можно class member function добавить модификатор "нельзя использовать this"? :)
как const и && только this=delete

Alexander
12.07.2017
13:29:21

Google

Constantine
12.07.2017
13:29:28

Matwey
12.07.2017
13:29:38
static

Nik
12.07.2017
13:29:46
а зачем?

Alexander
12.07.2017
13:29:48
именно
станадртными средствами нет. Советую использовать clang-tidy + самописное правило

Berkus
12.07.2017
13:30:02

Constantine
12.07.2017
13:30:02
static
Вы можете самостоятельно понять, что это не то же самое. Это не вопрос в supapro :)

Alexander
12.07.2017
13:30:13
очевидно же

Constantine
12.07.2017
13:30:25
Я не могу делать виртуальную static функцию

Berkus
12.07.2017
13:30:36

Constantine
12.07.2017
13:30:57
Я могу сделать аналогичную вещь через RTTI и статическую функцию, да, но это наркомания

Berkus
12.07.2017
13:31:04
можно еще внутри лямбду исползовать которая this не капчурит
virtual void test() { []{ no this bitches }(); }

Google

Constantine
12.07.2017
13:31:38
это часть сигнатуры метода, как и const
этот метод в потомках не имеет права использовать this явно

Berkus
12.07.2017
13:32:25
*yawn* ну сделай ему сигнатуру сам
сигнатура это ж просто буковки

Constantine
12.07.2017
13:32:53
у меня сейчас это просто синтаксис генератора, не поддерживаемый плюсами
так что я уже сделал сам, да
по сути это виртуальный атрибут класса
такое чувство, что ты пишешь на сях, а не на плюсах)
потому что на самом деле в плюсах есть только одна действительно стоящая вещь - компилятор можно заставлять делать проверки

Berkus
12.07.2017
13:39:04
и эта вещь стоит всего остального, да

Constantine
12.07.2017
13:39:30
по крайней мере эта вещь, из-за которой C++ не безнадежен

Berkus
12.07.2017
13:39:48
ты мог бы писать на хаскеле и не иметь этих проблем, ныл бы в другой чатик

Konstantin
12.07.2017
13:40:17

Constantine
12.07.2017
13:40:35

Antony
12.07.2017
13:41:36

Vitalii
12.07.2017
13:42:15

Constantine
12.07.2017
13:42:55

Google

Antony
12.07.2017
13:45:33
а можете пример в виде кода написать? А то я всё еще не догоняю

Constantine
12.07.2017
13:49:04
struct ReflectionType {
virtual ~ReflectionType() {};
virtual bool isMoveConstructible() /*this(delete)*/ = 0;
};
std::unique_ptr<ReflectionType> ReflectionTypeByName(std::string name) {
//фабрика
}
template <typename Type>
struct KnownCppType: ReflectionType {
virtual bool isMoveConstructible() /*this(delete)*/ {
return std::is_move_constructible<Type>::value;
}
};

Berkus
12.07.2017
13:51:19
никак не объясняет зачем тут this=delete

Konstantin
12.07.2017
13:51:35

Constantine
12.07.2017
13:53:26
никак не объясняет зачем тут this=delete
затем, что на самом деле следующая реализация семантически ошибочна:
struct HackedReflectionType: ReflectionType {
bool isMoveConstructible_;
virtual bool isMoveConstructible() {
return isMoveConstructible_;
}
};

Konstantin
12.07.2017
13:55:36

Constantine
12.07.2017
13:58:25

Konstantin
12.07.2017
13:59:35

Constantine
12.07.2017
14:00:21
Смотря на что
Можно вообще не писать никогда. Кажется, утверждалось, что const не учитывается компилятором, кроме как для проверки того, что кто-то не стреляет себе в ногу

Александр
12.07.2017
14:02:12
Всем привет, кто-нибудь сталкивался с раскраской отдельных элементов SVG-файла путём клика на области этих элементов? Типа, определять по координатам точки, какой это тэг файла. Если что, пишется это на виджетах Qt

Antony
12.07.2017
14:03:20


Berkus
12.07.2017
14:03:38

Александр
12.07.2017
14:05:01
хм, интересная идея, спасибо!

Constantine
12.07.2017
14:17:19


Дед Пегас
12.07.2017
15:09:56
https://vittorioromeo.info/index/blog/zeroalloc_continuations_p1.html

Anatoly
12.07.2017
15:31:11
@antoshkka а это валидное объявление другом
friend class ReflectionTypeImpl;
при условии, что ReflectionTypeImpl template?
вроде, должно быть
template<typename T>
friend class ReflectionTypeImpl;

Stanislav
12.07.2017
15:51:00
@zamazan4ik а ты смотрю активно пишешьв пропозалах)

Alexander
12.07.2017
15:52:23

Google

Stanislav
12.07.2017
15:52:57

Admin
ERROR: S client not available

Alexander
12.07.2017
15:53:31
/stat@combot

Combot
12.07.2017
15:54:22
combot.org/chat/-1001031904034

Alexander
12.07.2017
15:54:43
как випдишь, я и здесь флудить успеваю неплохо

Владислав
12.07.2017
15:55:51
самый активный участник чата за полгода

Stanislav
12.07.2017
15:58:55
я вроде один раз написал, меня не поняли слегка я подзабил

Alexander
12.07.2017
15:59:29

Stanislav
12.07.2017
15:59:49
да я читаю зато) там про extended классы было
как это, в шарпах есть такое

Владислав
12.07.2017
16:00:13
а кто стандарт читал? Чтобы от корки до корки.

Дед Пегас
12.07.2017
16:00:38
А кто не читал?

Владислав
12.07.2017
16:01:03
я не читал

Alexander
12.07.2017
16:01:41
Такую штуку я очень жду?
На с++ писать не бросим)

Stanislav
12.07.2017
16:04:19

Google

Stanislav
12.07.2017
16:04:43
во в шарпах так и называются C# extension methods
учитывая юниты трансляции всякие

Alexander
12.07.2017
16:07:40
Расширения в модуль, потом юзаешь модуль

Constantine
12.07.2017
16:08:23
А что там технически такое расширение?

Stanislav
12.07.2017
16:08:32
удобна

Дед Пегас
12.07.2017
16:09:17
Миксины шоле?

Constantine
12.07.2017
16:09:19
ну это может быть реализовано одним костылем, правда, по-хорошему нужно иметь модуль, который их все знает