определение типа во К сожалению, вы не можете сделать что-то вроде этого:Constexpr
typedef constexpr int cint;
И это не конец света .... просто надо впечатать дополнительные 9 (10, если вы включите пространство) символов каждый раз, когда вам нужно использовать constexpr
.
Но я создал класс, и я хочу только иметь возможность создавать constexpr версию этого класса (используя не constexpr
версии не имеют никакого смысла).
Так что мой план был создать класс с не доступным пространством именами, а затем создать в своем основном пространстве с constexpr
ЬурейиМ, например, так:
namespace MainNameSpace{
namespace detail{
class MyClass{};
}
typedef constexpr detail::MyClass MyClass;
}
К сожалению, я обнаружил, что это не может быть сделано ... . Есть ли способ достичь аналогичного эффекта (без использования макросов)?
'constexpr' не является частью системы типов. Это часть системы * expression *, т. Е. Характера * значений *. –
@KerrekSB Я обнаружил, что трудный путь – DarthRubik
'использование версии non constexpr не имеет никакого смысла. Как версия constexpr имеет смысл? Что вы ожидаете от этого? – deviantfan