enable_if и оператор преобразования?

Любой шанс использовать enable_if с оператором преобразования типов? Кажется хитрым, так как и тип возврата и список параметров неявны.

13
задан uj2 19 June 2010 в 16:15
поделиться

2 ответа

dixit the documentation:
Похоже, нет способа указать enabler для оператора преобразования. Однако конструкторы преобразования могут иметь enablers в качестве дополнительных аргументов по умолчанию.

2
ответ дан 2 December 2019 в 00:31
поделиться

Хотя я могу понять теоретический интерес к этому вопросу, я лично воздерживаюсь от использования операторов преобразования в максимально возможной степени.

Единственное, что я когда-либо использовал с согласованностью, - это преобразование в псевдобулево (с использованием идиомы Safe Bool) для интеллектуальных указателей или прокси, и, как уже отмечалось, я использую трюк, чтобы фактически предотвратить полную логическую семантику .. .

Если я когда-либо захочу упростить преобразование, я предпочитаю что-нибудь вроде:

template <class T>
T to() const;

, которое не страдает от ограничений (в смысле сигнатуры) оператора преобразования и требует явного вызова только потому, что это немного яснее.

2
ответ дан 2 December 2019 в 00:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: