День прошёл не зря — я узнал третье отличие class от struct.



Игра следующая: в контексте где возможны и class и struct найти где они будут вести себя по разному.



Общеизвестны 2 отличия:

(1) В class все поля по умолчанию private, в struct — public.

(2) Наследование в структуре по умолчанию публичное а в классе приватное.



Первое обычно знают все. Второе иногда вспоминают на интервью. Но сегодня я узнал третье.



(3) В качестве шаблонного параметра class означает тип, а struct начиная с C++20 означает NTTP с типом этой структуры (или класса с тем же именем, что, ИМХО, особенно прекрасно).



Наслаждаемся: https://godbolt.org/z/vsWzsTK8r



Найдётся ли четвёртое? Жду ваших предложений =)



#questions