gpt4 book ai didi

c++ - 带有 C++ 方法的 gcc 属性

转载 作者:可可西里 更新时间:2023-11-01 16:04:49 24 4
gpt4 key购买 nike

在头文件中定义了 C++ 方法的 GCC 中,是否可以使用 attribute 语法?有人可以为我提供一个例子吗?以下代码不起作用:

class foo
{
public:
void my_func() __attribute__((hot));
void my_func()
{
// Some stuff
}
};

似乎您必须将属性放在声明中而不是函数定义中。当您在头文件中定义方法/函数时,您没有单独的声明。

还有如何将其与模板一起使用。例如,以下代码无法编译并显示“错误:函数定义中不允许属性”。

/// Template version of max for type T
template <typename T>
inline T max(const T x, const T y) __attribute((const))
{
if (x > y)
return x;
else
return y;
}

最佳答案

看起来您可能需要将属性移到函数名称之前。在 GCC 4.6.3 上,您的代码无法编译,但下面的代码可以编译。

template <typename T>
inline T __attribute__((const)) max(const T x, const T y)
{
if (x > y)
return x;
else
return y;
}

关于c++ - 带有 C++ 方法的 gcc 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21116270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com