【发布时间】:2012-09-07 12:24:23
【问题描述】:
所以,我有这个模板类,我正在尝试为其编写一个通用转换运算符。 我想出的是这个(不起作用:“错误 - 'typename'之后需要一个限定名称”):
template <typename T>
class object{
...
T internal;
...
template <typename U>
explicit operator typename decltype(
std::conditional<
std::is_convertible<T, U>::type , U, T>::type)()
{
return static_cast<std::conditional<std::is_convertible<T, U>::type ,U, T>::type>(internal);
}
我做错了什么还是不可能?
【问题讨论】:
-
请注意
std::is_convertible<T, T>在很多情况下都成立。 -
实际上你想做什么?