• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Шаблоны

  • Автор темы Sermak
  • Дата начала
S

Sermak

У меня такой вопрос, можно ли создать объект шаблонного класса, который бы обозначал "NULL", если неизвестны параметры шаблона (типы данных шаблона). Если нельзя, то какие есть варианты. Например метод шаблона возвращает ссылку на объект шаблона, как можно определить, деиствительна ли ссылка, или метод допустил ошибку, и ссылка не верна (не найден объект и тп). Можно конечно создать флаг ошибки, но хотелось бы что нить поэллегантнее.
 
G

grigsoft

Шаблоны - они на этапе компиляции генерятся, поэтому спрашивать у класса, если у него параметр - нет смысла. Определить объект шаблонного класса без указания базы - нельзя, насколько мне известно.
Так что главный вопрос, как всегда - А на фига? Какую задачу пытаемся решить?
 
S

Sermak

Код:
template <class T>
class TC
{
public:
T& RetObj (bool x, T &obj)
{
if (x) return 0; // здесь естественно неправильно тк ссылка не может быть 0, а очень надо
else return obj;
}
};
Не смотрите на бессмысленность кода - это для примера.
Как мне дать понять пользовательской программе (которая будет использовать этот шаблон), что возвращщенный объект (ссылка) не является искомым. Кроме создания флага.
 
G

gamecreator

а вернуть указатель нельзя? только ссылку?
 
S

Sermak

с указателями можно конечно, но коряво получается при использовании перегруженных для class T операторов, вообщем некрасивый текст программы получается, хотелось бы всетаки со ссылками. Ну если конечно нельзя, то придется с указателями (у меня кстати так и реализовано уже), просто хотелость шоб красиво!!!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!