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

Сравнение в препроцессоре - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Хаотическое поведение системы частиц молекулярной динамики (перевод с TrueBasic в C++) http://www.cyberforum.ru/cpp/thread1766865.html
Есть программа на языке True basic, она описывает хаотическое поведение системы частиц молекулярной динамики. Программа отрисовывает движение частиц, изначально частицы занимают некоторые координаты на плоскости, в ходе выполнения программы, частицы начинают двигаться, причем их скорость и ускорение изменяются. Проблема в том, что программу нельзя просто скопировать, скомпилировать и запустить....
C++ Создание аналога onEnterFrane(flash) в C++ Встал вопрос, как создать такую вещь в C++ которая будет обрабатывать кусок кода постоянно раз в 1/60 секунды (например)? Типо кусок кода программа выполнила и если осталось время(1/60 секунды) то дожидается конца этого времени и продолжает работать дальше. Это должно быть без костылей и оптимизировано http://www.cyberforum.ru/cpp/thread1766091.html
Массив объектов с разными свойствами C++
Всем доброго дня! На мк (stm32) у входов есть разные возможности. Для меня интересны: Discrete Analog Frequency Counter Не все входы обладают этими возможностями. Всего 24 входа. В моем случае только 4 могут считать кол-во импульсов и частоту. Я хочу создать общий класс для входов, в котором будет реализована защита по указанию типа входа. Сейчас у меня примерно так:
C++ Шифрование файла с использованием аттрактора Лоренца на C++
Добрый вечер! Ни у кого случайно нет исходников такой программы? Срочно нужно! Программа должна использовать аттрактор лоренца для шифрования текстового файла
C++ CUDA OpenCV C++ фильтр Собеля http://www.cyberforum.ru/cpp/thread1765746.html
Всем привет пишу прогу в C++( CUDA+ openCV) Задание звучало сл образом Напишите программу, в CUDA, в котором будет применять фильтр Собеля, рассчитанный с помощью графического процессора #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include "cuda_runtime.h" #include "device_launch_parameters.h"
C++ Поиск объектов с OpenCV Здравствуйте, не подскажите как найти тёмные круги с помощью opencv std::vector<cv::Vec3f> circles; cv::HoughCircles(gray, circles, CV_HOUGH_GRADIENT, 1, 60, 200, 20, 0, 0); for (size_t i = 0; i < circles.size(); i++) { Point center(cvRound(circles), cvRound(circles)); int radius = cvRound(circles); подробнее

Показать сообщение отдельно
DrOffset
6851 / 4062 / 927
Регистрация: 30.01.2014
Сообщений: 6,859
21.06.2016, 15:51     Сравнение в препроцессоре
Цитата Сообщение от ValeryS Посмотреть сообщение
так нет там констант, одни дефайны
Как же нет? Константа времени компиляции, полученная в результате вычисления выражения времени компиляции. После раскрытия макросов выражение приобретает вид:
C++
1
(uint32_t)0x40000000 + 0x4800
Макрос результат выражения не знает, т.к. оно посчитается на этапе компиляции. А препроцессор работает до этого. Это же базовая матчасть, собственно.

Цитата Сообщение от ValeryS Посмотреть сообщение
боюсь, камень не потянет
Ну здрасти Камень-то тут причем? Шаблон же - это средство времени компиляции. Тем более такие проверки вообще в бинарный код никогда не попадают. Т.е. главное тут, чтобы компилятор это поддерживал, а на производительность скомпилированного кода это влиять не будет вообще.

Добавлено через 14 минут
ValeryS, ты можешь попытаться заставить его работать, если перенесешь вычисление на плечи препроцессора. Для упрощения:
C++
1
2
3
4
5
6
7
8
9
10
11
#if ((7) == (7))
// работает
#endif
 
#if ((7 + 1) == (7 + 1))
// работает
#endif
 
#if ((1 + 7) == (7 + 1))
// работает
#endif
Т.е. убери все приведения типов, и т.п. Чтобы дать препроцессору посчитать результат.
 
Текущее время: 18:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru