Мне нужно знать, когда состоится акция, и что это такое. Моя догадкаМожет ли быть создана специальность для продвижения по службе?
template <typename T>
struct promoted { using type = std::common_type_t<T, T>; };
template <typename T>
using promoted_t = typename promoted<T>::type;
Очевидно, что это сломается, если пользователь начинает перекрывая версии std::common_type
. Предполагая, что этого не произойдет, будет ли это работать? Предполагается, что условный оператор будет применять акции до дальнейшей оценки. Я действительно думаю, что что-то подобное должно быть в Стандарте когда-нибудь.
Если вы задаетесь вопросом, почему я хочу это, это для C-уровня переменной длины:
auto r = va_arg(the_va_list, T);
Если я первоначально принятый в типе, который преобразуется при использовании списков параметров, как float
с поворотом в double
с , я помещаю в исходный тип для T
, или с искаженным типом? В случае, если это последнее, я делаю тип признаков для этого, для которого требуется продвинутый признак на последнем шаге.
Я просто понял, что я мог вручную использовать 'decltype (declval() declval (): declval ())' вместо того, чтобы надеяться, что 'common_type' не переопределяется. (Вы можете переопределить 'common_type', если хотя бы один тип определен пользователем. Типы перечислений определяются пользователем и иногда могут быть затронуты рекламными акциями.) –
CTMacUser
« Предполагается, что условный оператор будет применять акции до дальнейшей оценки »- Нет, это не так. Это невозможно даже в C++, где результатом условного оператора может быть lvalue. – hvd