День прошёл не зря — я узнал третье отличие class от struct.
Игра следующая: в контексте где возможны и class и struct найти где они будут вести себя по разному.
Общеизвестны 2 отличия:
(1) В class все поля по умолчанию private, в struct — public.
(2) Наследование в структуре по умолчанию публичное а в классе приватное.
Первое обычно знают все. Второе иногда вспоминают на интервью. Но сегодня я узнал третье.
(3) В качестве шаблонного параметра class означает тип, а struct начиная с C++20 означает NTTP с типом этой структуры (или класса с тем же именем, что, ИМХО, особенно прекрасно).
Наслаждаемся: https://godbolt.org/z/vsWzsTK8r
Найдётся ли четвёртое? Жду ваших предложений =)
#questions
Игра следующая: в контексте где возможны и class и struct найти где они будут вести себя по разному.
Общеизвестны 2 отличия:
(1) В class все поля по умолчанию private, в struct — public.
(2) Наследование в структуре по умолчанию публичное а в классе приватное.
Первое обычно знают все. Второе иногда вспоминают на интервью. Но сегодня я узнал третье.
(3) В качестве шаблонного параметра class означает тип, а struct начиная с C++20 означает NTTP с типом этой структуры (или класса с тем же именем, что, ИМХО, особенно прекрасно).
Наслаждаемся: https://godbolt.org/z/vsWzsTK8r
Найдётся ли четвёртое? Жду ваших предложений =)
#questions