Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 December 09

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
если ты хочешь для одного типа, наверное стоит указывать специализацию шаблона
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
типо
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
прям во френде что ли?
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
template<>
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
ну ща глянем
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
у меня просто вместо инта тоже темплейтный обьект
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
и сам класс такой же.. кароче выйдет веселая картина
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
ну ок, пасиба.. гляну че как
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
Alexander Pavlyuchuk
типа, если
template<class T>
void foo(T obj);


тогда
struct A {
friend void foo(int obj);
};
походу так и нужно писать
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
если нужен только конкретный тип
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
если типы не откуда выводить можно написать
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
friend void f<T>();
источник

Д

Данил in IT KPI C/C++ ХВ (не UB)
Всем дарова, хотел спросить, каким образом можно проверить корректность введенных данных при передаче в конструктор с параметрами. У меня пока реализовано так:

Constructor(<type of argment> argument)
{
     if(isCorrectEnteredData(argument))
   {  
          this->fieldOfClass = argument;
   }
     else
    {
             throw std::exception("Incorrect input data");    
    }
}
И соответсвенно нужно каким то образом словить эту возможную ошибку в main(), но каким образом?
Если просто
try
{
      Class Constructor(parameter);
}
catch(const std::exception &ex)
{
     std::cout << ex.what() << std::endl;
     /* может быть return 0; дописать чтобы программа не продолжала работать дальше*/
}
то нельзя будет взимодействовать с обьектом класса в дальнейшем ибо он в локальной области видимости try catch
Возникает вопрос - как правильно проверить корректность полученных аргументов в конструкторе( и как обьявлять коструктор)
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
как минимум можешь сделать указатель за блоком try catch, а в блоке создавать новый объект, и тогда ты сможешь получить доступ к объекту
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
имхо лучше проверять не в обьекте а специальном месте для валидации ввода
зачем это в обьекте?
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
да, а второй вопрос это про качество проектирование интерфейса
источник

VT

Vladislav Tolstikov in IT KPI C/C++ ХВ (не UB)
и проверку можно положить на плечи пользователя
источник

ДВ

Дмитрий В in IT KPI C/C++ ХВ (не UB)
Всем привет! Буду очень благодарен, если кто-то поможет! Заранее спасибо!

1.Необходимо написать программу на OpenMP

Прилагаю фото с полностью расписанным заданием.
Оно решено на 90%
Не понятно лишь (фото 2). Я просто не понимаю как это сделать.

Пожалуйста посмотрите фото и читайте дальше, спасибо.

2.Я не понимаю, как доставать индексы из столбцов и параллельно на другом потоке искать другой индекс, если те два окажутся равны...
(Мне кажется, что с п.2 из закрепа, я абсолютно не справился)

3.На данный момент мне осталось написать цикл, который сформирует вектор из индексов, которые будут представлять собой последовательность строк.
Сотая попытка данного цикла строки 161-208.

Компиляция: g++ BivSort.cpp -fopenmp -o BivSort.exe
Запуск: (./)BivSort.exe p row col
p - количество потоков
row - строк
col - столбцов

Заранее спасибо!
Если вдруг что непонятно, пожалуйста, спросите! Спасибо!

Код - https://pastebin.com/spzV80cT
источник

ДВ

Дмитрий В in IT KPI C/C++ ХВ (не UB)
источник

ДВ

Дмитрий В in IT KPI C/C++ ХВ (не UB)
источник