首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Fortran中将运行时if替换为编译时if

在Fortran中将运行时if替换为编译时if
EN

Stack Overflow用户
提问于 2018-05-30 07:04:57
回答 1查看 259关注 0票数 2

我有一个子例程,它在中间包含一个简单的if语句,我想去掉它。原因是,我预先知道该语句是真是假,这是基于调用发生的位置,而不是基于输入数据。这甚至更有吸引力,因为它是1行代码,如果它真的不做太多事情的话。

现在有一个额外的逻辑输入,它只用于if语句,它被调用了两次-一次使用"false“,一次使用"true”。

本质上,我想让if语句在编译期间工作,但#ifdef不允许同一个子例程有两种不同的用法/配置。

愚蠢的解决方案是完全复制子例程,并使一个实例具有"true“段,而另一个实例仅具有"false”段。

然而,除此之外,这远远不是优雅的(并且有99.9%的相似性),这是一个打开的麻烦,一旦子例程在未来被改变。

我要指出的是,我的意思不是重载子例程(至少不是在“传统”意义上),尽管这是一种相同的一般概念。

所以我的问题是-有没有解决这种情况的方案,或者我将不得不把它作为一个运行时的if语句,并有一个额外的逻辑true/false输入?

我用的是Fortran 90/95。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50594188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档