相关疑难解决方法(0)

有没有办法在PC中将auto作为参数传递?

有没有办法将auto作为参数传递给另一个函数?

int function(auto data)
{
    //DOES something
}
Run Code Online (Sandbox Code Playgroud)

c++ arguments function auto

35
推荐指数
3
解决办法
2万
查看次数

自动作为GCC 4.9扩展的常规功能中的参数吗?

gcc 4.9允许使用以下代码,但gcc 4.8和clang 3.5.0拒绝它.

void foo(auto c)
{
    std::cout << c.c_str();
}
Run Code Online (Sandbox Code Playgroud)

我进入warning: ISO C++ forbids use of 'auto' in parameter declaration [-Wpedantic]4.9但是在4.8和clang我得到error: parameter declared 'auto'.

c++ gcc auto gcc4.9 c++14

23
推荐指数
2
解决办法
4561
查看次数

缩写函数模板的默认参数

我注意到我似乎无法像我期望的缩写函数模板那样使用默认参数。

\n
#include <iostream>\n\nauto f(const auto x = 0) {\n    return x + sizeof(x);\n}\n\nint main() { \n    std::cout << f() << std::endl; // << broken\n    std::cout << f(0) << std::endl;\n    std::cout << f(short(8470)) << std::endl;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这是什么原因呢?

\n

我的猜测是,模板机制从不考虑默认参数,所以我们得到了这种荒谬的情况,我可以定义一个看起来像默认值的模板化函数T=intT隐藏模板类型在哪里),但似乎没有办法在不手动的情况下调用它指定类型:( f<int>())。

\n

这主要是语言琐事,我不认为这是一个真正的问题,但函数模板没有int默认模板类型确实看起来很奇怪\xe2\x84\xa2。

\n

c++ templates c++20

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

标签 统计

c++ ×3

auto ×2

arguments ×1

c++14 ×1

c++20 ×1

function ×1

gcc ×1

gcc4.9 ×1

templates ×1