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

Специализация метода темплейтного класса вложенного в темплейтный класс - C++

Восстановить пароль Регистрация
Другие темы раздела
OpenGL OpenGL, трехмерный график http://www.cyberforum.ru/cpp-beginners/thread1497375.html
Начинаю по чуть-чуть изучать программирование , попалась для меня немного странная задачка , нужно вывести график функции z=cos(r)/r , но при этом r=sqrt((x^2)*(y^2)). выдает много ошибок , прошу помощи в их исправление или советов. #include<openGL/gl.h> #include<Glut/glut.h> #include <math.h> #include <stdlib.h> float f(float x, float y , float r , float z) { return...
C++ Крестики-нолики - алгоритм для игры против ПК Смотрю, уже только ленивый не сделал. Собственно это я. Вчера сел, написал свои 200 строк какашкокода для любого поля с любым количеством требуемых чисел для победы по всем направлениям.. С победой пришлось повозиться, но все вышло. Собственно, куда смотреть в отношении алгоритма для игры против ПК? Очевидно, что рандом так себе играет. Пока есть следующий вариант: if Проверить возможность... http://www.cyberforum.ru/cpp-beginners/thread1497338.html
Запись двумерного массива в файл C++
В общем нужно записать двумерный массив в фаил, но что то ни как не получается. //magicQuad.h #ifndef MAGICQUAD_H #define MAGICQUAD_H #include <iostream> using std::cout; using std::endl; class magicQuad {
C++ OpenGL: Вывести значения двух функций
Пытаюсь разобраться с opengl , хотел вывести две функции , но выдает ошибку , подскажите как исправить. #include <iostream> #include<openGL/gl.h> #include<Glut/glut.h> void draw() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1, 0, 0);
C++ Работа с динамическими символьными массивами и строками переменной длины http://www.cyberforum.ru/cpp-beginners/thread1497312.html
Здравствуйте! НЕ могу решить проблему из-за которой программа летит коту под хвост) Задача программы в том, чтобы по заранее заданным в поле номерам считать файлы с именами схожей конструкции: file1.dat .... file230.dat. То есть при каждой следующей итерации имя файла меняется, с ним производятся действия он закрывается. Поэтому требуется создавать массив имени файла. Проблема в том, что при...
C++ Что такое __pragma(warning()) ? Вот код макроса: #define PTM_WARNING_DISABLE \ __pragma(warning( push )) \ __pragma(warning( disable : 4867 )) Что эти функции делают? И что это за функция __pragma? От ее определение нельзя посмотреть? подробнее

Показать сообщение отдельно
Vlad1slav
21 / 21 / 5
Регистрация: 16.09.2009
Сообщений: 111
11.07.2015, 21:21     Специализация метода темплейтного класса вложенного в темплейтный класс
Есть два темплейтных класса
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
template <bool T2>
class B
{
  void b();
}
 
template <>
void B<true>::b() {}
 
template <>
void B<false>::b() {}
 
template <typename T1>
class A
{
  void a();
  B _b;
}
В таком виде всё работает отлично, но хотелось бы скрыть класс B, т.к. он является вспомогательным для класса A, и нигде снаружи в нём нет необходимости... т.е. написать что-то типо

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
template <typename T1>
class A
{
  void a();
 
  template <bool T2>
  class B
  {
    void b();
  }
 
  B _b;
}
 
template <T1>
template <>
void A<T1>::B<true>::b() {}
 
template <T1>
template <>
void A<T1>::B<false>::b() {}
Но компилятор ругается.
Говорит C3855: 'class B': type parameter 'T2' is incompatible with the declaration.
Как-то можно это обойти и сделать класс B вложенным в класс A?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru