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

Полная спецификация шаблона в перемешку с SFINAE - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не выводятся на экран значения элементов массива http://www.cyberforum.ru/cpp-beginners/thread1630346.html
const int arraySize = 10; int data = { 34, 56, 4, 10, 77, 51, 93, 30, 5, 52 }; cout << "Unsorted array:\n"; for(int i = 0; i < arraySize; ++i) cout << setw(4) << data; Кроме строчки "Unsorted array" ничего больше не выводится. Если заюзать, к примеру, std::endl после цикла, то всё ОК. Как то можно решить данную проблему? И вообще, в связи с чем этот трабл?
C++ Вычислить сумму ряда целых чисел кратных 3 которая меньше 21 Вычислить сумму ряда целых чисел кратных 3, которая меньше 21. Вывести результат, последний член и количество итераций http://www.cyberforum.ru/cpp-beginners/thread1630332.html
надо доработать функцию вычисления островов C++
#include <iostream> using namespace std; int Odisland(int mass) { int count = 0; for (int i = 1; i < 10; i++) { for (int k = 1; k < 10; k++) { if (mass == 1) {
Проверить принадлежит ли введенное число заданному диапазону C++
Введіть з клавіатури два числадля більшого з них числа перевірте чи знаходиться воно вдіапазоні від 5до30 Ввести 2 числа. Для большего из них проверить принадлежит ли оно диапазону от 5 до 30. Напишите программу, которая позволяет вводить данные, использует вложенный условный оператор, и выводит на экран 4 соответствующих сообщения.
C++ Получение времени в С++, time.h http://www.cyberforum.ru/cpp-beginners/thread1630317.html
Всем доброго времени суток. Сталкиваюсь с проблемой получения времени. Под запись в БД мне необходимо получить именно СЕКУНДЫ, а не дату, и записать их в строку. Получать необходимо много раз, поэтому используется цикл while Делаю так: std::stringstream ss; while (true) { ss.clear(); ss << time(NULL); }Как-то так. Не кидайтесь особо тапками, я новичок.
C++ Проверить введённое пользователем число на соответствие условию Напишите программу, которая позволяет вводить данные, использует вложенный условный оператор, и выводит на экран 4 соответствующих сообщения. Введите с клавиатуры целое число N. Если оно парное , проверьте, положительное ли оно. Если непарное, проверить условие N<25. подробнее

Показать сообщение отдельно
hoggy
5227 / 2118 / 403
Регистрация: 15.11.2014
Сообщений: 4,801
Завершенные тесты: 1
02.01.2016, 19:58     Полная спецификация шаблона в перемешку с SFINAE
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Но это же не true coding - как смешать проверку SFINAE на факт нужно ли в exe данный класс и полную спецификацию, чтобы "научить" рендомить всё включая свои типы.
не понятно, что именно не получается.
и зачем так много кода для такой простой задачи.

и зачем вообще нужны все эти шаблоны?
можно же было сделать тупо как то так:
C++
1
2
3
4
5
6
7
    uint32_t GetRandom(const uint32_t a, const uint32_t b);
    int32_t GetRandom(const int32_t a, const int32_t b);
    uint64_t GetRandom(const uint64_t a, const uint64_t b);
    int64_t GetRandom(const int64_t a, const int64_t b);
 
    f32_t GetRandom(const f32_t a, const f32_t b);
    f64_t GetRandom(const f64_t a, const f64_t b);
что бы вкрячить поддержку классов,
можно сделать что-то типа такого:

C++
1
2
3
4
5
6
7
8
9
10
11
template<class T> inline T random(const T& a, const T& b)
{
    static std::default_random_engine rnd_(
        static_cast<unsigned>(
            std::chrono::system_clock::now().time_since_epoch().count()
         )
    );
 
    std::uniform_int_distribution<T> distribution(a, b);
    return distribution(rnd_);
}
соответственно, все, что потребуется от возможных T:
отвечать контракту std::uniform_int_distribution
 
Текущее время: 01:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru