Форум программистов, компьютерный форум CyberForum.ru

Как заставить компилятор не компилить неправильную программу? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача страуструпа: Измените программу так, чтобы она выводила числа, которые почти равны друг другу http://www.cyberforum.ru/cpp-beginners/thread749576.html
Есть программа #include <iostream> using namespace std; int main () { double val_1 = 0.0;
C++ Дан массив из 10 элементов (заполнить вручную). Найти все четные элементы массива находящиеся на нечетных местах Дан массив из 10 элементов (заполнить вручную). Найти все четные элементы массива находящиеся на нечетных местах. В случае отсутствия таких элементов вывести на экран надпись: «These elements are not found».* const int size=10; int ar={2,32,69,35,48,78,95,21,25,12}; for (int i=0; i<size; i++) if (ar%2==0 && i%2!=0) http://www.cyberforum.ru/cpp-beginners/thread749571.html
C++ Поиск подстроки в строке(алгоритм Бойера-Мура)
Программа находит шаблоны в строке алгоритмом Бойера-Мура и находить должна в строке которая находится в файле. Сам код работает и находит все как надо, кроме разве что того, что если в строке есть пробел он ничего не ищет, а сразу return 0... Возможно ли, что это глюк компилятора или все же ошибка в коде? Помогите, пожалуйста.
Нужен совет: Какую библиотетеку подключить, чтобы в консоли русские символы были C++
Какую библиотетеку подключить что бы в консоли русские символы были ?
C++ Файл в vector<int> http://www.cyberforum.ru/cpp-beginners/thread749551.html
Как более удачно записать файл в вектор. С помощью чего открыт файл не имеет значения. Заранее спасибо.
C++ В массиве целых чисел из 20 элементов найти все элементы, значение которых больше среднего арифметического массива В массиве целых чисел из 20 элементов найти все элементы, значение которых больше среднего арифметического массива. Вывести на кран значения и позиции этих элементов. Подскажите, пожалуйста, как вывести позиции элементов? Заранее спасибо. Вот мое решение: const int size=20; int ar={2,4,5,3,6,15,2,36,4,2,3,65,4,1,2,3,6,5,7,10}; int sredn=0; int sum=0; подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
30.12.2012, 14:33  [ТС]     Как заставить компилятор не компилить неправильную программу?
Так-то из области фантастики задача, но хоть ЧТО-ТО мы ведь можем проконтролировать? Щас вот изучаю C# так там прямо сказано- они частично ошибки времени выполнения делаю ошибками компиляции с помощью хитрой какой-то перетипизации

+++++++++++++++++++++++++++++++++++++++++++

Ну вот допустим я пишу так (ошибочно!)
C++
1
int p= 8;
То есть я не должен присваивать переменной p значение 8, а я присвоил. Это же можно как-то проконтролировать? Например использовать не переменнную типа int, а создать класс, в котором инкапсулировать переменную int; и сделать так чтобы в правой части была тоже не переменная int, а переменная какого-нибудь хитрого класса. И чтобы объекты этого класса не могли принимать значение 8

Ну то есть чтобы был контроль типов. Чтобы логика компилятора была примерно такая:
C++
1
T p= 8;
1) Смотрим перегруженный оператор = класса T
2) Определяем, что параметром к этому оператору может идти какой-нибудь класс T1
3) Пытаемся перетипизировать (T1)8, а не получается
4) Вот и ошибка компиляции. Как-то так.
 
Текущее время: 02:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru