如何将具有自动返回类型的功能从头文件包含到多个cpp文件中

Bl4ckC4t

我想以一种这样的方式定义一个自动返回类型的函数:如果包含标头,则可以从多个.cpp文件中调用它。我有4个档案

head.hpp -功能在哪里

#ifndef HEAD_HPP
#define HEAD_HPP 

auto f();

#endif

head.cpp -声明函数的位置

#include "head.hpp"

auto f(){
    return [](){
        return 10;
    };
}

test1.cpp -使用位置

#include "head.hpp"
int foo(){
    auto func = f();
    return f();
}

main.cpp -也要在哪里使用


#include "head.hpp"
int foo();
int main(){
    auto fu = f();

    return fu() + 5 + foo();
}

所有文件都一起编译,但仍然出现错误:

错误:在扣除“ auto”之前使用“ auto f()”

auto fu = f();

山姆·瓦尔沙夫奇克

不幸的是,C ++无法以这种方式工作。

在C ++中调用函数时:

auto fu=f();

编译器必须知道函数实际返回的离散类型。auto不是真正的类型。它只是一种占位符,可以在以后弄清楚一种类型。

但是这种“后来的”永远不会出现。如果编译器看到的只是auto返回类型,则编译器无法确定函数的实际返回类型,因此程序格式错误,并且会出现编译错误。

这是C ++的基本方面,没有解决方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我如何将目录中的头文件包含到 cmake 中

cmake将头文件包含到每个源文件中

将头文件包含到多个继承类的最佳实践

C ++模板头文件cpp分离,将* .cpp包含到* .h中的解决方案不再起作用

如何将主体包含到标记文件中

如何将新文件包含到补丁中

将头文件包含到静态库中

如何将CGO用于具有条件内联功能的头文件?

如何将所有kubernetes对象包含到一个文件中

将头文件包含到头文件中,而不将其内容暴露给includer

如何将包含多个.cpp源文件(每个文件都具有main()定义)的文件夹导入Eclipse项目?

如何将一个单独的 Swift 包中的 C 头文件包含到另一个 Swift 包的 C 部分中

如何将类从另一个文件包含到您的主文件中

如何将视频文件包含到 CHM 文件中?

nuget包中的.targets文件-如何将内容文件包含到构建中

如何将zend phtml文件包含到其他phtml文件中

CMake 无法将头文件包含到我的源文件中

如何将文件头包含到已在 IntelliJIdea 中创建的所有 Java 类和接口中

C ++在多个源文件中包含具有相同类实现的不同头文件

如何使用WiX Pyro将已更改但具有相同版本号的文件包含到MSP中?

如何自动将最新的git commit元数据包含到已提交的文件中?

如何将jar文件包含到Oracle中的Java存储过程中?

如何将.rb文件中的代码正确包含到Rails体系结构中?

如何将外部.js文件包含到ejs节点模板页面中

如何将javax.json jar正确包含到已部署的.jar文件中

如何将外部Vue模板包含到HTML文件中

AngularJS应用:如何将.js文件包含到index.html中

如何将Jquery / Bootstrap文件包含到堆栈中Webpack / angular2 / typescript

如何将嵌入式框架的dSYM文件包含到应用程序存档中