Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
trans967
6 / 2 / 5
Регистрация: 23.04.2013
Сообщений: 203
#1

Объясните пожалуйста код - C++

27.01.2016, 12:16. Просмотров 344. Ответов 5
Метки нет (Все метки)

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
35
36
37
#include <iostream>
 
template <typename T>
struct NameOf {};
 
#define DEF_TYPENAME(type) template <> \
struct NameOf<type> {\
    static const char value[];\
};\
const char NameOf<type>::value[] = #type;
 
DEF_TYPENAME(int)
DEF_TYPENAME(double)
DEF_TYPENAME(long double)
DEF_TYPENAME(float)
DEF_TYPENAME(char)
DEF_TYPENAME(long)
DEF_TYPENAME(unsigned)
DEF_TYPENAME(unsigned long)
 
template <typename T, typename ...types>
void printTypes(T)
{
    std::cout << NameOf<T>::value << std::endl;
}
 
template <typename T, typename ...types>
void printTypes(T, types... t)
{
    std::cout << NameOf<T>::value << ", ";
    printTypes(t...);
}
 
int main(int argc, char *argv[])
{
    printTypes(1,2U,3L, 4.0, 5.0L, 6UL, 'a', 8.0F);
}
Объясните пожалуйста код.
http://www.cyberforum.ru/cpp-beginners/thread1098956.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2016, 12:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Объясните пожалуйста код (C++):

объясните пожалуйста код
объясните пожалуйста код, желательно каждую строчку пояснить #include...

объясните, пожалуйста, код
есть программа, но не до конца понятно, что она делает... #include...

Объясните код пожалуйста
FILE* fp = NULL; char* filename = &quot;m:\\2.txt&quot;; if ((fp =...

Объясните пожалуйста код
#include&quot;stdafx.h&quot; #include&lt;string.h&gt; #include &lt;iostream&gt; using namespace...

Прошу объясните код пожалуйста
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt;...

5
volframka
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 6
27.01.2016, 17:32 #2
А что именно не понятно?
Просто объяснять начиная с: что такое include?
Или достаточно, что программа выводит имена всех перечисленных типов?
0
trans967
6 / 2 / 5
Регистрация: 23.04.2013
Сообщений: 203
27.01.2016, 17:35  [ТС] #3
Ну инклуды не надо объяснять.
Но хотелось бы что-то типа комментарий к строкам.
Например, что делает #type в 8 строке вообще не понятно
0
castaway
Эксперт С++
4926 / 3033 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
27.01.2016, 17:54 #4
Цитата Сообщение от trans967 Посмотреть сообщение
Например, что делает #type в 8 строке вообще не понятно
Если вы про 7-ю строку, то так устроена специализация (полная) шаблона.
0
trans967
6 / 2 / 5
Регистрация: 23.04.2013
Сообщений: 203
27.01.2016, 17:55  [ТС] #5
Я про 10 строку, почему #?
Для чего?
Ну, может, кто-то объяснит построчно?
0
castaway
Эксперт С++
4926 / 3033 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
27.01.2016, 17:58 #6
Цитата Сообщение от trans967 Посмотреть сообщение
Я про 10 строку, почему #?
Преобразование аргумента макроса в строковой литерал (строку в стиле Си).
C++
1
2
3
4
5
#define A( arg ) #arg
 
...
    std::cout << A( hello ); // напечатает hello
...

Не по теме:

Цитата Сообщение от trans967 Посмотреть сообщение
что делает #type в 8 строке
Цитата Сообщение от trans967 Посмотреть сообщение
Я про 10 строку
???

0
27.01.2016, 17:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2016, 17:58
Привет! Вот еще темы с решениями:

Объясните, пожалуйста, данный код
Здравствуйте, объясните пожалуйста построчно данный код. Задача: В одномерном...

Класс Вектор. объясните пожалуйста код!
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;cstdlib&gt; using namespace...

Объясните код, пожалуйста, файловый поток
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace...

Объясните пожалуйста, как работает код. Указатели
Если не сложно, напишите пожалуйста комметнтарии к каждой строке. Никак не могу...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru