小编use*_*683的帖子

std::initializer_list<> 和一个参考参数

我是使用初始化列表的新手,我想知道它们是否与其他 stl 容器类似。我的意思是他们复制值吗?我想要做的是一个简单的 min() 函数,如下所示:

template <class T> T& minArgs(const std::initializer_list<T&>& Arguments)
{
    const T* Smallest = Arguments.begin();
    for (const T* I = begin(Arguments); I != end(Arguments); ++I)
    {
        if (*I < *Smallest) Smallest = I;
    }
    return *Smallest;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我调用该函数时,我从 GCC 得到了这个:

error: 'const' qualifiers cannot be applied to 'int&'
Run Code Online (Sandbox Code Playgroud)

我一直在玩这个,似乎 initializer_lists 可能不会做我想要的;我希望该函数也能排除非 POD 参数。va_list 会是更好的选择吗?

谢谢!

c++ min initializer-list c++11

5
推荐指数
1
解决办法
2167
查看次数

C++ 函数原型和变量名与仅数据类型

在 C++ 中声明函数原型时,以下内容之间存在差异:

void SomeFunction( int Argument ) 
{
    //Stuff
} 
Run Code Online (Sandbox Code Playgroud)

相对

void SomeFunction( int ) 
{
    //Stuff
} 
Run Code Online (Sandbox Code Playgroud)

基本上我要问的是,为什么要在函数原型中编写可变参数名称而不仅仅是数据类型?

c++ prototype function

4
推荐指数
2
解决办法
1646
查看次数

标签 统计

c++ ×2

c++11 ×1

function ×1

initializer-list ×1

min ×1

prototype ×1