Форум программистов, компьютерный форум 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; подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
31.12.2012, 11:20     Как заставить компилятор не компилить неправильную программу?
Да они тоже не особо альтернатива. Но они могут обломать компиляцию, если значение не подходит. Просто для int_<8>-то хватит и примитивного #define I(v) int_<v>(), но не для более сложных объектов, где пригодится гарантированно compile-time constexpr, но не с таким сногсшибательным синтаксисом как у темплейтов. Это даже могут быть не макросы, а именно просто compile-time-only constexpr (кодогенерацию при компиляции мейнстрим чё-то пока не заценил).

Но вопрос "на кой хрен" остаётся в силе. Конечно, можно сделать так, чтобы писать Constrained<int, Or<InRange<2, 42>, Not<Even>, Equals<67, 98>>, но ведь проблему зависимости типов это не решит. Эту хрень можно будет гарантированно скастовать только к инту. Остальные касты будут выполняться вместе с проверками в рантайме, а значит, особо нет толку от написания всех ограничений на шаблонах (которые как бы намекают, что проверки на валидность кастов должны выполняться лишь при компиляции), если всё равно 99% проверок будут выполняться в рантайме.
 
Текущее время: 04:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru