C++ 语言如何 return void?泛型模板元编程中常见此类问题。

这是一个语法糖的问题,一般来说对语言本身特点研究过少,不知道这套玩法是很正常的,毕竟C++是一门综合性复杂且强大的中高级编程语言。

语义分析:

// 允许编程语义、不会导致编译器错误

void test_print() {}

template

static constexpr R test()

{

      return test_print();
}

// 不允许编程语义、它会导致编译器错误

template

static constexpr R test()

{

       class Fx

       {

               public: static void test_print() {}

       };

      return Fx::test_print();
}

// 允许函数使用 return void 语义实现。

void test() {

return void{};

}

// 模板应使用以下语义来实现。

template

R test() {

return R{};

}

你可能感兴趣的:(C/C++,c++,开发语言)