C ++属性提供了一种方便且标准化的方法来标记代码,并提供额外的信息以提供给编译器和/或其他工具。
使用OpenMP涉及在源中添加大量#pragma omp...
行(例如标记循环以进行并行处理)。这些#pragma
行似乎是广义属性等设施的绝佳候选者。
例如,#pragma omp parallel for
可能会成为[[omp::parallel(for)]]
。
经常不准确的cppreference.com使用这样的属性作为示例here,这确认了它至少被某人考虑过。
是否存在OpenMP pragma到当前可用并且由任何/所有主要编译器支持的C ++属性的映射?如果没有,是否有计划创建一个?
答案 0 :(得分:0)
这绝对是可能的,甚至是OpenMP语言委员会正在研究的东西。请参阅第36页的OpenMP技术报告8(https://www.openmp.org/wp-content/uploads/openmp-TR8.pdf),其中提出了通过属性使用OpenMP的语法。包含在TR8中并不能保证将其包含在5.1版中,但表明它正在被讨论。这种语法主要基于原始提案中针对C ++属性所做的工作。
如果您对此有具体的反馈意见,建议您通过OpenMP论坛(http://forum.openmp.org/forum/viewforum.php?f=26)对此提供反馈。