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

Шаблоны template с ограниченными параметрами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как лучше проинцилизировать указатели в NULL? http://www.cyberforum.ru/cpp-beginners/thread654357.html
board.h #ifndef BOARD_H_ #define BOARD_H_ #include "Piece.h" #include <iostream> class Board { public: Piece* p;
C++ Вывести в двоичном виде нули и единицы 01010110001 Не понимаю почему не выводится буфер в двоичном виде, да и флаг tellg() равен -1 в конце программы.. Помогите пожалуйста. Цель, посмотреть расстановку нулей и единиц по битам, в программе открываю бинарный файл, читаю 1 байт, и хочу увидеть чему равны значения битов. #include<iostream> #include<fstream> using namespace std; int main() { ifstream file; http://www.cyberforum.ru/cpp-beginners/thread654343.html
C++ конструктор
enum Color {Null, WHITE, BLACK}; enum Type {Null, King, Peshka}; class Piece { public: Color color; Type type; Piece(Color color_, Type type_) :
Поиск элементов массива с заданными свойствами C++
Маленький внучек решил помочь бабушке подстричь цветы в ее драгоценном цветнике, срезав только бутоны и цветы на них. К счастью сообразительный мальчик срезал только те цветы, которые были высотой от h1 см до h2 см от земли. Скольким цветочкам посчастливилось быть подстриженными, если их высота в сантиметрах составляет a1, a2, ..., an. Помогите пожалуйста, спасибо всем заранее за помощь.
C++ Массив(чётные и нечётные числа) http://www.cyberforum.ru/cpp-beginners/thread654324.html
помогите, пожалуйста, написать программу: нужно в массиве, в его начало, поставить сначала все четные числа, а затем нечётные...затем посчитать количество чётных чисел в массиве(массив можно ввести с клавиатуры, а можно через "srand"). Делать это нужно путём перестановки элементов в массиве.
C++ Задача: преобразование систем счисления Описание Имеются 2 цифры в разных системах счисления, цель задачи найти, в каких системах счисления 2 цифры равны. Например, 12 и 5, в десятичной системе счисления они не равны, но 12 в 3-чной системе счисления и 5 в 6-чной или десятичной системе счисления равны между собой. Input Вводятся два числа M и N ( которые в десятичной системе не превышают 1000000000), системы счисления... подробнее

Показать сообщение отдельно
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
19.09.2012, 17:04     Шаблоны template с ограниченными параметрами
Можно еще и потребовать, чтобы в классе обязательно была реализована определенная функция:
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
64
#include <iostream>
using namespace std;
 
template<bool>
struct CompileCheck { CompileCheck(...); };
 
template<>
struct CompileCheck<false>
{
};
 
#define STATIC_ASSERT(value, message) \
class ERROR_##message { };\
enum { _##message = sizeof((CompileCheck<(value) != 0>(ERROR_##message()))) };
 
template<typename T, typename U>
struct is_same
{
   static const bool value = false;
};
 
template<typename T>
struct is_same<T, T>
{
   static const bool value = true;
};
 
template<class T> struct has_member_Func;
 
template<class R, class C> class has_member_Func<R C::*>
{
    template<R C::*> struct helper;
    template<class T> static char check(helper<&T::Func>*);
    template<class T> static char (&check(...))[2];
public:
    enum { value = sizeof(check<C>(0)) == 1 };
};
 
// Тестовые классы:
 
class A
{
};
 
class B
{
public:
    void Func(B&);
};
 
struct C
{
public:
    void AnotherFunc(C&);
};
 
 
int main()
{
    STATIC_ASSERT(has_member_Func<void (A::*)(A&)>::value, CLASS_A_HASNT_MEMBER_FUNCTION_FUNC);
    STATIC_ASSERT(has_member_Func<void (B::*)(B&)>::value, CLASS_B_HASNT_MEMBER_FUNCTION_FUNC);
    STATIC_ASSERT(has_member_Func<void (C::*)(C&)>::value, CLASS_C_HASNT_MEMBER_FUNCTION_FUNC);
    return 0;
}
 
Текущее время: 00:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru