相关疑难解决方法(0)

可以`if constexpr`用于声明具有不同类型和init-expr的变量

例如:

void foo()
{
    if constexpr (...)
        int x = 5;
    else
        double x = 10.0;
    bar(x); // calls different overloads of bar with different values
}
Run Code Online (Sandbox Code Playgroud)

这是D lang的常见情况,但我没有找到有关C++ 17的信息.

当然,可以使用类似的东西

std::conditional<..., int, double>::type x;
Run Code Online (Sandbox Code Playgroud)

但仅限于基本情况.即使是不同的初始化者(如上所述)也会产生很大的问题.

c++ metaprogramming c++17 if-constexpr

8
推荐指数
1
解决办法
853
查看次数

标签 统计

c++ ×1

c++17 ×1

if-constexpr ×1

metaprogramming ×1