C++ 如何避免助手函数被警告&引用;xxx已定义但未使用;

C++ 如何避免助手函数被警告&引用;xxx已定义但未使用;,c++,C++,我从这篇文章学到了在名称空间中创建助手函数。 对。我使用了intToString(intinteger),但没有使用小写(std::string&)。我不想看到这些警告,也不想在每个头上划分一个helper函数 有人能提出一个好的解决方案吗?我应该禁用警告吗?谢谢您可以选择关闭该警告: -Wno-unused-function 通过GCC,您可以逐个函数定义: void whatever () __attribute__ ((unused)); void whatever () {

我从这篇文章学到了在名称空间中创建助手函数。

对。我使用了intToString(intinteger),但没有使用小写(std::string&)。我不想看到这些警告,也不想在每个头上划分一个helper函数


有人能提出一个好的解决方案吗?我应该禁用警告吗?谢谢

您可以选择关闭该警告:

-Wno-unused-function
通过GCC,您可以逐个函数定义:

void whatever () __attribute__ ((unused));

void whatever () {
    stuff;
}
这告诉GCC该函数可能未使用


有关属性的更多信息,请参见

什么是编译器?警告及其启用和禁用是特定于编译器的。当然,这是GCC。没有其他编译器会在意。考虑到您使用它们的方式(包括从头文件中使用它们,以便它们在每个翻译单元中具有相同的定义),将它们设置为
内联
静态
更有意义。有什么特别的原因要给它们内部链接吗?“OrgnlDave。这个方法很有效。但是,当我想要合并定义时,编译器返回“函数定义中不允许使用属性”的错误。例如,这个定义返回错误:static void toLowerCase(std::string&y)attribute((未使用)){std::transform(y.begin(),y.end(),y.begin(),(int(*)(int))tolower);}助手函数的实现是写在标题中的。我没有单独的cpp文件。@Mickey没问题,如果你愿意,你可以声明签名,然后直接在下面实现,就像我展示的一样。我已经更改了我的标题函数,与你的演示相同。只是好奇。这两行可以连接在一起吗?@Mickey我不放在下面由于我通常编写跨平台代码,所以在GCC中对属性进行了大量的考虑,但我不这么认为。函数属性用于很多事情,例如,强制事情内联或不内联,因此它们应该出现在声明中,而不是实现中。但是,从文档来看,我不是这方面的专家我看不出有什么办法
-Wno-unused-function
void whatever () __attribute__ ((unused));

void whatever () {
    stuff;
}