Size: a a a

cxx.Дискуссионная

2020 March 07

а

акварель на мету in cxx.Дискуссионная
Ofee
Я хочу функционал виртуальных классов в C++, но не платить за это вообще
??? ты так и не ответил про constexpr
источник

O

Ofee in cxx.Дискуссионная
Т-34 85
это делает КАЖДЫЙ метод виртуальным. То есть, не могу!
Каждый метод трейта. Ты не должен пихать все методы своей программы в один трейт
источник

O

Ofee in cxx.Дискуссионная
акварель на мету
??? ты так и не ответил про constexpr
Это была аналогия. constexpr мы можем использовать в обоих контекстах, virtual (пока) — лишь в рантайме
источник

O

Ofee in cxx.Дискуссионная
Т-34 85
"вы просто его не так держите". Ясна-панятна
Если ты 200 функций объявляешь виртуальными в C++... Ой, глянь, я тоже могу придумать, как изуродовать код. Это не значит, что делать нужно так.
источник

O

Ofee in cxx.Дискуссионная
Ofee
Если ты 200 функций объявляешь виртуальными в C++... Ой, глянь, я тоже могу придумать, как изуродовать код. Это не значит, что делать нужно так.
А ещё сортировать можно только пузырьком
источник

Т8

Т-34 85 in cxx.Дискуссионная
Ofee
Как сделать, чтобы компилятор C++ тебя понял?
1. Выучить C++
2. ... ?
3. Profit!

Как сделать, чтобы компилятор Rust тебя понял?
1. Выучить Rust
2. ... ?
3. Profit!
ну нет, спасибо, ищи другого дурака, которому понравится так танцевать, лишь бы угодить rustc
источник

O

Ofee in cxx.Дискуссионная
Ofee
А ещё сортировать можно только пузырьком
Или вводить номер телефона в интерфейсе, кликом на кнопку "случайный номер"
источник

Т8

Т-34 85 in cxx.Дискуссионная
Ofee
В сигнатуре функции сделать это
то есть, никак
источник

O

Ofee in cxx.Дискуссионная
Т-34 85
ну нет, спасибо, ищи другого дурака, которому понравится так танцевать, лишь бы угодить rustc
Т.е. аргументы закончились и началось неосиляторство? С этим не помогу — сам не осилил ещё
источник

Т8

Т-34 85 in cxx.Дискуссионная
а это кто
Динамический
fn make_sound_twice(animal: dyn Animal)

Статический
fn make_sound_twice<T: Animal(animal: T)
ты тред вообще не читаешь?
источник

O

Ofee in cxx.Дискуссионная
Т-34 85
то есть, никак
то есть, как
источник

Т8

Т-34 85 in cxx.Дискуссионная
Ofee
Я хочу функционал виртуальных классов в C++, но не платить за это вообще
и при чём тут тема "отсутствие ооп в расте"?
источник

O

Ofee in cxx.Дискуссионная
Т-34 85
и при чём тут тема "отсутствие ооп в расте"?
А при чём тут тема ООП?
источник

Т8

Т-34 85 in cxx.Дискуссионная
Ofee
Каждый метод трейта. Ты не должен пихать все методы своей программы в один трейт
это Я решаю, как будет. А не компилятор
источник

O

Ofee in cxx.Дискуссионная
Ofee
А при чём тут тема ООП?
Если хочешь классическое ООП — бери тот язык, где ООП самое классическое из классических. Жаль, таких кандидатов несколько десятков и у каждого своё ООП
источник

Т8

Т-34 85 in cxx.Дискуссионная
Ofee
Если ты 200 функций объявляешь виртуальными в C++... Ой, глянь, я тоже могу придумать, как изуродовать код. Это не значит, что делать нужно так.
ещё раз - если мне надо, я буду так делать. Не указ мне твой раст
источник

AE

Andrew Evseev in cxx.Дискуссионная
#include <iostream>

using namespace std;

template <typename T> struct animal {
 void sound () {
   static_cast <T *>(this)->sound();
 }
};

struct cat:animal<cat> {
 void sound () {
   cout << "meow";
 }
};

struct man:animal<man> {
 void sound () {
   cout << "hi";
 }
};

int main () {
 animal<man> a;
 animal<cat> c;
 a.sound ();
 c.sound ();

 return 0;
}
источник

O

Ofee in cxx.Дискуссионная
Т-34 85
это Я решаю, как будет. А не компилятор
Решай, никто не запрещает. А в Расте можно решать, какой объект хранит лишний указатель, а какой нет
источник

O

Ofee in cxx.Дискуссионная
Т-34 85
ещё раз - если мне надо, я буду так делать. Не указ мне твой раст
Так делай то же самое на Раст. Он тоже тебе не указ, в отличие от твоего кода
источник

O

Ofee in cxx.Дискуссионная
Andrew Evseev
#include <iostream>

using namespace std;

template <typename T> struct animal {
 void sound () {
   static_cast <T *>(this)->sound();
 }
};

struct cat:animal<cat> {
 void sound () {
   cout << "meow";
 }
};

struct man:animal<man> {
 void sound () {
   cout << "hi";
 }
};

int main () {
 animal<man> a;
 animal<cat> c;
 a.sound ();
 c.sound ();

 return 0;
}
Спасибо за CRTP, полагаю, требуется помощь с трудоустройством за такое?)
источник