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

Функция возвращающая имя аргумента - C++

Восстановить пароль Регистрация
 
Доктор ТуамОсес
Заблокирован
23.06.2009, 02:54     Функция возвращающая имя аргумента #1
Как написать функцию, возвращающую идентификатор фактического параметра?
Т.е. чтобы возвращала имя переданного параметра.

C++
1
2
3
4
5
6
7
...
int  Hio2mp = 10 ;
double Ko3enc = 2.2766 ;
 
cout << f(Hio2mp) ;  // Будет выведено на экране: Hio2mp
cout << f(Ko3enc) ;  // Будет выведено на экране: Ko3enc
...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
23.06.2009, 08:36     Функция возвращающая имя аргумента #2
никак.
имя параметра - техническая информация, доступная только отладчику.
а в relise - версии программы она вообще отстутствует, и даже отладчик не поможет.
Доктор ТуамОсес
Заблокирован
23.06.2009, 17:47  [ТС]     Функция возвращающая имя аргумента #3
Ну может есть какие прагмы или ключи компиляции? А?
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
23.06.2009, 19:44     Функция возвращающая имя аргумента #4
разве я неясно выразился?
Цитата Сообщение от Patch Посмотреть сообщение
имя параметра - техническая информация, доступная только отладчику.
а в relise - версии программы она вообще отстутствует, и даже отладчик не поможет.
как можно извлечь из программы информацию, которой там нет???
Доктор ТуамОсес, а зачем это вообще нужно?
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16934 / 5339 / 328
Регистрация: 30.03.2009
Сообщений: 14,339
Записей в блоге: 26
23.06.2009, 21:21     Функция возвращающая имя аргумента #5
Можкшь сделать через макрос. Правда гениальность такой необходимости я всё равно не понимаю

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
 
#define f(x) #x
 
int main (void)
{
  int x, y, trampampam;
 
  cout << f(x) << endl;
  cout << f(y) << endl;
  cout << f(trampampam) << endl;
 
  return 0;
}
Доктор ТуамОсес
Заблокирован
23.06.2009, 21:42  [ТС]     Функция возвращающая имя аргумента #6
Patch и Evg!!!
Зачем нужно?
В учебных целях.
Я осваиваю C++.
Вот и изучаю все возможности C++
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
23.06.2009, 22:00     Функция возвращающая имя аргумента #7
в учебных целях неплохо бы почитать базовую документацию.
там написано, что С/С++ - языки компилируемые, а не интерпретируемые.
в создаваемом компилятором машинном коде никакая исходная информация(текст программы) не сохраняется.
единственное, что можно сделать - создавать в каждом классе переменную "имя".
при инициализации - прописывать туда нужное значение,
и в нужном месте программы - запрашивать его.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16934 / 5339 / 328
Регистрация: 30.03.2009
Сообщений: 14,339
Записей в блоге: 26
23.06.2009, 22:03     Функция возвращающая имя аргумента #8
Цитата Сообщение от Доктор ТуамОсес Посмотреть сообщение
В учебных целях
Приведи хоть один живой учебный пример, а то без него мы врядли поймём, что же ты в итоге хочешь сделать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2009, 22:22     Функция возвращающая имя аргумента
Еще ссылки по теме:

Функция, возвращающая массив C++
C++ Функция возвращающая массив
C++ Функция, возвращающая указатель
C++ Функция возвращающая константу
Функция возвращающая ссылку C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Доктор ТуамОсес
Заблокирован
23.06.2009, 22:22  [ТС]     Функция возвращающая имя аргумента #9
Цитата Сообщение от Patch Посмотреть сообщение
в создаваемом компилятором машинном коде никакая исходная информация(текст программы) не сохраняется.
А как же RTTI?
Ведь сохраняется же идентификатор типа переменной
Yandex
Объявления
23.06.2009, 22:22     Функция возвращающая имя аргумента
Ответ Создать тему
Опции темы

Текущее время: 20:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru