在使用C++时,我开始想知道像sizeof(int)
这样的代码是如何工作的。我意识到sizeof
是一个操作符,不是一个函数,但它仍然让我好奇.类似于myFunc(double)
的代码合法吗?您能将纯类型的东西(如int
或MyClass
)传递给函数吗?诚然,我看不出有多少应用程序,但我只是想知道。
发布于 2015-07-31 22:10:09
操作符喜欢sizeof
,因为语言说他们这样做。
并不是所有的东西都是一个像函数一样的构造,可以重载或重新创建自己。您不能让您自己的操作符取一个类型名,就像您不能创建自己的基本类型或声明语法一样。
您不能在您的sizeof
程序中重写C++并在那里使用它(尽管编译器中的底层实现通常是用C++编写的!)不过,这是在另一个抽象层)。
这里没有魔法,只有生活的事实。
发布于 2015-07-31 22:03:39
不,不能。参数是表达,而在C++中,类型不是表达式。
模板用于“类型参数”,但它们仅在编译时使用。(见上文@Banex和@clcto。)
https://stackoverflow.com/questions/31755862
复制相似问题