我能否将C++程序想象成类似于Java注解的东西?我知道#pragma是编译器特定的,但我想知道它们的总体目的是否与Java注解相似。
#pragma db object
class person
{
...
private:
friend class odb::access;
person () {}
#pragma db id
string email_;
string name_;
unsigned short age_;
};
在C++中使用类似Java的注解里有更多的信息。
Pragma指令与注释不是类似的,它们就是它们的名字所指示的编译器指令。正如先前的回答所指出的那样,可以并且通常在预编译阶段进行处理。
但由于Java编译与C ++不同,这就是差异的原因。
pragma
仅在编译时使用。对于改进解释的+1。此外,如果您想提供Abraham可以接受的答案,请随意使用我的评论,否则我将在明天这样做 - 现在有点忙。 - lucian.pantelimonpragma
在我所知道的实现中并不会像这样在编译器之外传播,但编译器所做的事情肯定会对运行时产生影响,因此一个 pragma 可以间接地影响运行时。例如,一个 pragma 可以生成特别命名的标志,在运行时可以进行查询。(我想这就是你的意思,但应该要明确表述。) - James Kanze