Форум программистов, компьютерный форум, киберфорум
Наши страницы

Реализовать подстановку кода с помощью препроцессора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Typedef для функций http://www.cyberforum.ru/cpp-beginners/thread1801818.html
Здравствуйте! В книге Страуструпа в качестве примера приводится typedef для указателей на функции например: typedef void(*SIG_TYP) (int) , typedef int (*CFT)(const void*, const void*) Не совсем...
C++ Что не так с этими указателями? Всем привет, прошу помощи разобраться в коде. Недавно начал изучать C++ по книге Лафоре. В главе с указателями есть пример со связными списками. Вот его структура: struct node { int data;... http://www.cyberforum.ru/cpp-beginners/thread1801791.html
C++ Прервать цикл из цикла, вложенного в него
Приветствуют. Собственно, вопрос в названии темы. for(int i = 1; i <= 10; i++) for(int j = 1; j <= 5; j++) { if(/* здесь условие выхода из обоих циклов */) { /* как выйти сразу из 2-х...
C++ Тест. Подскажите где ошибка
1 ответ не правильный. Подскажите где ошибка.
C++ Typedef thiscall метода с переменным числом аргументов http://www.cyberforum.ru/cpp-beginners/thread1801756.html
Добрый день. Хочу что то типа такого typedef void *(__thiscall *tThisCall)(void *, ...); tThisCall method; //... method(object, arg1, arg2);
C++ Создание просто словаря, не выполняется поиск Пример взят из книги, но работать он не хочет. Проверял цикл for, выдает значение 012.(Не совсем понятно от куда что, ладно 2 цифры но их 3) Думаю что что то не так с if (!strcmp(a, word)), раньше... подробнее

Показать сообщение отдельно
hoggy
6717 / 2900 / 497
Регистрация: 15.11.2014
Сообщений: 6,526
Завершенные тесты: 1
02.09.2016, 19:10
Цитата Сообщение от Cend Посмотреть сообщение
где ошибка?
ошибок две:

1.
Цитата Сообщение от Cend Посмотреть сообщение
CLASSNAME_FUNC
должно быть так:
C++
1
CLASSNAME##_FUNC
2.
фатальная ошибка:
вы в одном макросе объединили определение функций,
и исполняемый код запуска другой функции.

так делать нельзя.
возможно вы хотите что-то вроде этого:

http://rextester.com/ECBOZ94050
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// =======================================
 
#define DECL(CLASSNAME)         \
    void* CLASSNAME##_FUNC() {  \
        return new CLASSNAME;   \
    }                           
 
 
#define RUN(CLASSNAME)          \
    RunFunc(CLASSNAME##_FUNC, #CLASSNAME)
 
// =======================================
 
#include <iostream>
 
template<class T> void RunFunc(T*, const char* msg)
{
    std::cout<<"execute RunFunc for " << msg << std::endl;
}
 
 
struct some1{};
struct some2{};
 
DECL(some1)
DECL(some2)
 
 
int main()
{
    std::cout << "Hello, world!\n";
    RUN(some1);
    RUN(some2);
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.