相关疑难解决方法(0)

decltype(void())中的void()究竟是什么意思?

这是对这个问题的跟进,更准确地说是这个答案的评论.

什么是void()decltype(void())代表什么呢?
它表示函数类型,表达式还是其他什么?

c++ void decltype language-lawyer c++11

24
推荐指数
2
解决办法
2255
查看次数

是一个声明void(); 合法的,实际上是什么?

我有一小段代码有一个声明 void();

int main() 
{
   void( ); // 1: parses fine in GCC 5.4.0 -Wpedantic 
   // void;    // 2: error declaration does not declare anything
} 
Run Code Online (Sandbox Code Playgroud)

什么是1 void()

  • 匿名函数声明?
  • 类型声明?
  • 一个空表达?

是什么让1 void()与2不同void;

我已经读过了:

  1. sizeof(void())是一个合法的表达式吗?但是void()被认为是sizeof中的一个类型
  2. decltype(void())中的void()究竟是什么意思?在declspec中考虑它.
  3. 我读的是无效{}合法与否?

但我很好奇松散的声明是否为void(); 不同于其中之一(当然为什么)

c++ language-lawyer

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

什么是"void();" 在C++中作为单独的声明意味着什么?

这个程序如何编译好?

int main() {
    void();  // Does this create a "void" object here?
}
Run Code Online (Sandbox Code Playgroud)

我已经在MSVC和GCC下进行了测试.但这void是一个不完整的类型.对任何其他不完整的用户定义类型执行相同操作时,

class Incomplete;

int main() {
    Incomplete();  // Error saying "Incomplete" is incomplete.
}
Run Code Online (Sandbox Code Playgroud)

c++

5
推荐指数
2
解决办法
272
查看次数

标签 统计

c++ ×3

language-lawyer ×2

c++11 ×1

decltype ×1

void ×1