LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

Ну в практическом отношении тип «целое число от 0 до 300» можно описать просто предвычисленным перечислением + описание инварианта для данного перечисления. Инвариант проверяется компилятором. Наверное на шаблонах C++ можно такое провернуть.

Или скажем, можно описать тип, который содержит простые множители числа 1 522 605 027 922 533 360 535 618 378 132 637 429 718 068 114 961 380 688 657 908 494 580 122 963 258 952 897 654 000 350 692 006 139.

Но невозможно заставить компилятор вывести значения этого типа. Если ты только не потусторонняя зелёная летучая мышь.

Исправление wandrien, :

Ну в практическом отношении тип «целое число от 0 до 300» можно описать просто предвычисленным перечислением + описание инварианта для данного перечисления. Инвариант проверяется компилятором. Наверное на шаблонах C++ можно такое провернуть.

Или скажем, можно описать тип, который содержит простые множители числа 1 522 605 027 922 533 360 535 618 378 132 637 429 718 068 114 961 380 688 657 908 494 580 122 963 258 952 897 654 000 350 692 006 139. И компилятор даже сможет его проверить.

Но невозможно заставить компилятор вывести значения этого типа. Если ты только не потусторонняя зелёная летучая мышь.

Исправление wandrien, :

Ну в практическом отношении тип «целое число от 0 до 300» можно описать просто предвычисленным перечислением + описание инварианта для данного перечисления. Инвариант проверяется компилятором. Наверное на шаблонах C++ можно такое провернуть.

Точно так как же можно, например, легко описать тип, который содержит простые множители числа 1 522 605 027 922 533 360 535 618 378 132 637 429 718 068 114 961 380 688 657 908 494 580 122 963 258 952 897 654 000 350 692 006 139. И компилятор даже сможет его проверить.

Но невозможно заставить компилятор вывести значения этого типа. Если ты только не потусторонняя зелёная летучая мышь.

Исходная версия wandrien, :

Ну в практическом отношении тип «целое число от 0 до 300» можно описать просто предвычисленным перечислением + описание инварианта для данного перечисления. Инвариант проверяется компилятором. Наверное на шаблонах C++ можно такое провернуть.

Точно так как же можно, например, легко описать тип, который содержит простые множители числа 1 522 605 027 922 533 360 535 618 378 132 637 429 718 068 114 961 380 688 657 908 494 580 122 963 258 952 897 654 000 350 692 006 139.

Но невозможно заставить компилятор вывести значения этого типа. Если ты только не потусторонняя зелёная летучая мышь.