在阅读并观看有关C ++ constexpr
的讨论后,我想:
太酷了!
作为一名语言书呆子,我考虑过定义一种新的编程语言,并隐含着constexpr
这个概念。含义没有constexpr
个关键字。据我所知,在编译时评估constexpr
的一般规则是:
constexpr
关键字声明函数或变量。constexpr
函数/变量的值,否则允许编译器将其推迟到运行时。但是让我们说删除条件1和3.然后编译器会在编译时评估它可以做的任何事情。但在某些情况下,您可能会得到错误的结果。这是一个例子:
var file = new File("Data.txt");
...
...
在这种情况下,路径在编译时是已知的,因此在编译程序的机器上搜索文件而不是用户的机器。在某些情况下,这可能是程序员需要的,但往往不是。
所以问题是:是否可以定义一组附加规则,以便编译器能够区分?