61

(25 відповідей, залишених у C++)

wander, так, туплю. Я скопіював ваш код собі, а потім намагався зрозуміти, що ви там зробили, тому пробував, що в голову приходило.

62

(25 відповідей, залишених у C++)

wander, так воно працює ж, а якщо написати отак:
f(reinterpret_cast<Base*>(derived_arr));
вже ні

63

(25 відповідей, залишених у C++)

Так, таке я вже бачив. Мене швидше цікавить чому я не можу зробити отак:
https://ideone.com/2B56Yy

64

(25 відповідей, залишених у C++)

Чому такий дизайн? Ну, просто так. Я якось переписував код з книжки де пояснювали класи, наслідування.. потім дещо пробував для себе, щоб розібратися, ніякого мета-значення тут немає, швидше просто цікаво як це зробити.

65

(25 відповідей, залишених у C++)

Вітаю!

В ході вивчення С++, та написання власної програми зіткнувся з такою ситуацією:
є два класи class base (батько) і class derived (нащадок);
є деяка віртуальна функція в class base, яка приймає як параметр масив об'єктів класу f(base **arr);
щоб скористатися цією функцією для класу нащадка, необхідно привести масив нащадків класу до масиву батьківського;
Масиви: base *baseArr[100], derived *derivedArr[100]

Як таке зробити?

66

(30 відповідей, залишених у C++)

adziri, ого, дякую вам за настільки детальний розпис. Обов'язково ще почитаю про всі специфікатори.

67

(30 відповідей, залишених у C++)

Так, дякую, все працює. А можете ще пояснити чому це працює? Раніше ні разу такого синтаксису не бачив
constexpr auto check_impl(int) noexcept -> decltype((std::declval<Ts>() + ...), bool{})

68

(30 відповідей, залишених у C++)

Вітаю, чи не могли б ви допомогти і з моєю проблемою?

У мене є деякий std::tuple і я хотів би перевірити чи елементи тапла можна між собою додати?
Я розумію, що це можна якось зробити через шаблони, але не можу цього склеїти докупи в себе в голові, щоб реалізувати.