相关疑难解决方法(0)

是什么类型的?b:c`?

让我们说我们有

template <typename T>
struct Foo
{};
Run Code Online (Sandbox Code Playgroud)

struct Bar
{
    template <typename T>
    operator Foo<T>() const { return Foo<T>(); }
};
Run Code Online (Sandbox Code Playgroud)

template <typename T>
Foo<T> Baz(T const&) { return Foo<T>(); }
Run Code Online (Sandbox Code Playgroud)

然后,因为可以转换为true ? Bar() : Baz(some_expr_of_type_double)类型.此技巧用于查询类型而不进行评估.Foo<double>BarFoo<double>some_expr_of_type_double

确定类型的规则是a ? b : c什么?我很欣赏标准的相关部分(我没有副本).有没有" typeof(b)必须可以转换为typeof(c),反之亦然,毫不含糊"?

c++

6
推荐指数
1
解决办法
484
查看次数

标签 统计

c++ ×1