Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Visual C++ Нужен совет Здравствуйте программисты! Дайте пожалуйста если кто знает ссылку книги по Visual Studio 2005 по С++ на русском языке(программировать на форме),не могу найти именно под студию 2005, она стоит у нас на учёбе. Зараннее благодарен за ссылку униги. https://www.cyberforum.ru/ visual-cpp/ thread43002.html Visual C++ Сравнение файлов по дате
Привет. Подскажите как можно в Visual C / Visual Studio сравнивать имеющийся файл с файлом на ftp сервере по дате создания/изминения ???
Visual C++ Есть два представления (типа CView). Как распечатать их за один раз? https://www.cyberforum.ru/ visual-cpp/ thread42961.html
Товарищи, выручайте. У меня в SDI-программе есть CSplitterWnd со статическим разделением. В нем создано два разных представления, №1 и №2, которые присоединены к одному документу. Они показывают картинку №1 и №2. Мне нужно: распечатать обе картинки на 1 странице за 1 раз. Как такое можно сделать?
Visual C++ Как обработать WM_DEVICECHANGE? Нужна помощь, как заделать хук на событие - вставка изъятие USB-устройства???? Алгоритм такой воткнул/вынул флешку и получил месэдж от проги, вот так) https://www.cyberforum.ru/ visual-cpp/ thread42900.html
Visual C++ прошу помочь:почему моя программа не работает?
тут писал браузер,но в итоге выходит 1 ошибка,хотя никаких ошибок нету.помогите пожалуйста.
Visual C++ Не работает %f в CStringT::Format https://www.cyberforum.ru/ visual-cpp/ thread42827.html
У меня Visual Studio 2005. При этом CStringT::Format принимает только %d и %i и более ничего из других типов. То есть наотрез отказывается конвертить всё, кроме целых. Выражение типа: sString.Format("num= %f\n",num); ,где num типа double - дает на выходе такую строку: num= f То есть сочетание %f ему пофигу.
Visual C++ бифункциональная диаграмма Как в С++ построить бифункциональную диаграмму?=-O:swoon: есть функция: y=L*x*(1-x) где 0<L<=4 People heelp!!!:scratch: https://www.cyberforum.ru/ visual-cpp/ thread42690.html Массивы Visual C++
Ребята кто может помочь написать в С++ Борланде такую программу. Написать программу которая выводит на экран окантвовку двумерного массива?? Добавлено через 1 минуту 8 секунд Написать программу которая выводит на экран окантовку двумерного массива??**
Visual C++ Перевод битов в байты всем приветик!!! пшу прогу просомторщика который переводит байты (символы) в бинарный вид и обратно!!! перевод в ту сторону без проблем!!! а вот назад есть только вариант возведения в степень с получением номера символа от 0 до 255!!! соответсвенно нужно вставлять таблицу ASCI а это очень не охота делать так как там много управляющих символов которые как бы никуда не убрать!!! подскажите есть... https://www.cyberforum.ru/ visual-cpp/ thread42414.html Visual C++ Реализация графического интерфейса в windows https://www.cyberforum.ru/ visual-cpp/ thread42251.html
Прошу прощения возможно за тупой вопрос. Имеется программа-сервер, которая висит в качестве демона на линуксовом сервере, и которая при запросе отправляет статистические данные клиенту. Данные представляют из себя сруктуру из характеристик системы(температура, fan, загруженность сети и т.д.). Со стороны клиента особо ничего сложного нет кроме графического интерфейса. В общем необходимо...
Матрица смежности из массива линий Visual C++
Здравствуйте, надеюсь что поможете, а то вот уже 2 день бьюсь над проблемой. Имеется массив линий в виде (хотя можно изменить формат вручную как угодно, главное чтобы работало) x1y1 - x2y2 x2y2 - x3y3 x5y5 - x6y7 нужно создать матрицу смежности в виде x1 x2 x3 x4 x5 x1 c c c c c x2 c c .... x3
Visual C++ Использование микросхем FTDI https://www.cyberforum.ru/ visual-cpp/ thread41949.html
Через USB порт чтение данных
tavova
0

Cпециализации шаблонов - Visual C++ - Ответ 209497

05.07.2009, 12:58. Показов 651. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Привет!
Сижу уже второй день и не могу понять что за ерунда. Задача, если упростить, состоит в том чтобы получить при одинаковом вызове значения поля обекта или результат выполнения метода. Пробовал 2 варианта специализаци и нифига не вышло.


// Example1
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
template <class Obj, class T> class Invoker1
{
};
 
template <class Obj, class Ret> class Invoker1<Obj, Ret Obj::*>
{
public:
  static Ret go(Obj& obj, Ret Obj::* fld)
  {
    return obj.*fld;
  }
};
 
template <class Obj, class Ret> class Invoker1<Obj, Ret (Obj::*)(void)>
{
public:
  static Ret go(Obj& obj, Ret (Obj::*fn)(void))
  {
    return (obj.*fn)();
  }
};
 
template <class Obj, class T> void invoke1(Obj& obj, T fld)
{
  Invoker1<Obj, T>::go(obj, fld);
}
 
[COLOR=SeaGreen]// Example2[/COLOR]
template <class Obj, class RetType> class Invoker2
{
public:
  static RetType go(Obj& obj, RetType Obj::* fld)
  {
    return obj.*fld;
  }
};
 
template <class Obj, class RetType> class Invoker2<Obj, RetType (void)>
{
public:
  static RetType go(Obj& obj, RetType (Obj::* fld)(void))
  {
    return (obj.*fld)();
  }
};
 
template <class Obj, class RetType> void invoke2(Obj& obj, RetType Obj::* fld)
{
  Invoker2<Obj, RetType>::go(obj, fld);
}
 
[COLOR=SeaGreen]// Какой-то класс[/COLOR]
class TestClass
{
public:
  int x;
  int f();
};
 
int TestClass::f()
{
  return 0;
}
Пробуем первый вариант:
Код
TestClass obj;
  invoke1(testObj, &TestClass::x);
  invoke1(testObj, &TestClass::f);
Первая строчка отлично компилируется и работает, на второй компилятор выдаёт:
error C2752: 'Invoker1<Obj,T>' : more than one partial specialization matches the template argument list
with
[
Obj=TestClass,
T=int (__thiscall TestClass::* )(void)
]
: could be 'Invoker1<Obj,Ret(__thiscall Obj::* )(void)>'
: or 'Invoker1<Obj,RetObj::* >'
: see reference to function template instantiation 'void invoke1<TestClass,int(__thiscall TestClass::* )(void)>(Obj &,T)' being compiled
with
[
Obj=TestClass,
T=int (__thiscall TestClass::* )(void)
]
Второй вариант:
Код
TestClass obj;
  invoke2(testObj, &TestClass::x);
  invoke2(testObj, &TestClass::f);
Первая строчка снова отлично компилируется и работает, на второй компилятор выдаёт:
error C2091: function returns function
see reference to class template instantiation 'Invoker2<Obj,RetType>' being compiled
with
[
Obj=TestClass,
RetType=int (void)
]
see reference to function template instantiation 'void invoke2<TestClass,int(void)>(Obj &,RetType (__thiscall TestClass::* ))' being compiled
with
[
Obj=TestClass,
RetType=int (void)
]

Если верить Страуструпу, то специализация считается более специализированной чем другая в том случае если все варианты первой подходят и второй, но не оборот. В этом отношении метод класса всегда может быть проитерпетирован как поле, но не наобот. И по-этому я не понимаю, в чём проблема?

Вернуться к обсуждению:
Cпециализации шаблонов Visual C++
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2009, 12:58
Готовые ответы и решения:

нету шаблонов !
Помагите у меня нету шаблонов c++ mfc где их брать ? у меня Microsoft Visual C++ 2008 Express...

Использование функций шаблонов
О, знатоки и боги c++. Мне очень нужна ваша помощь. Нужно создать программы, а я в них слабовато...

Создание шаблонов для С++
Здравствуйте! Я на MSDN прочитал информацию, то что нельзя создавать шаблоны для С++ в Visual...

Перегрузка шаблонов
привет, объясните, почему вызывается первая версия шаблона? #include &lt;iostream&gt; using namespace...

0
05.07.2009, 12:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2009, 12:58
Помогаю со студенческими работами здесь

С++, создание шаблонов
Задание по C++ - создание шаблонов, помогите! Создать шаблон некоторого целевого класса А,...

Наследование шаблонов
Не вижу, в чём ошибка. В дочернем классе ругается, что переменная val не определена... Я...

С++ использование шаблонов
Приветствую всех на форуме. Написал код с использованием шаблонов. Задание звучит так : ...

переопределение шаблонов
Есть такой код: #ifndef ARRAY1_H #define ARRAY1_H #include &lt;iostream&gt; #include &lt;locale.h&gt;...

использование шаблонов
не могу понять в чем дело.... для примера приведу простенькую функцию ввода элементов в вектор......

Экспорт шаблонов
Вопрос такой: Можно ли в Visual C++ реализовать экспорт шаблонов функций так, чтобы например в...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru