跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 今天又往
未分類
13 7 月 2020

今天又往

今天又往

資深大佬 : AlohaV2 10

头文件里有很多宏+模板的代码,因为如此 class 和 struct 的声明和实现全在里面,一个头文件有接近 2000 行长。今天想加点功能,然后又往里面塞东西了…. 感觉有点不爽,不知道各位大佬有没有解决方案?用 ipp 么?

编译环境是 C++14, clang / msvc

C++20 里面有个`export`的关键词能用,可惜鄙司项目离 20 还远….哎…

大佬有話說 (23)

  • 資深大佬 : allAboutDbmss

    2000 行很长吗…我很弱弱问一句

  • 資深大佬 : SingeeKing

    2000 行真不长…… 很多开源项目都是这样

  • 資深大佬 : LifStge

    确实这个不算长
    你这样想 你把超长头文件 分成很多不同的小文件 那么 你用的时候怎么办呢 详细记住哪个东西在哪个文件里面啊 自己分的 那还好 再比如 这些是别人 很多人 分的的 你确定你知道哪个在哪个里面么 写个代码不头疼死么 写次代码 翻次文档 没有文档 挨个翻源码啊..

  • 資深大佬 : LifStge

    现在 代码的多少 都加进屎山的定义了么

  • 資深大佬 : CismonX

    用预编译头,可以在头文件不变的时候加快源文件的编译速度

    我之前用很多模版库,比如 boost,再比如 armadillo 等等,都是这么搞的

    另外 2000 行真的不长。公司里有个项目,头文件加起来有十几万行

  • 資深大佬 : xcstream

    include 套娃

  • 資深大佬 : MrKou47

    我感觉头文件挺好的。。总比分散在项目中好啊

  • 資深大佬 : msg7086

    那你拆成一堆头文件屎饼啊…

  • 資深大佬 : ericgui

    @CismonX 请问贵司啥项目?

  • 資深大佬 : chinuno

    如果不是作为库使用的话可以提供一个思路。
    模板的实现写在 cpp 里面,然后 cpp 里面显式实例化。需要哪个类的实现就在 cpp 加一句重新编译 cpp 就可以

  • 主 資深大佬 : AlohaV2

    @chinuno 类似`using SpecifiedSomeClass = TemplatedClass<Foo>;` 这样的吗

  • 資深大佬 : meteor957

    2000 行一般吧 不算很长了

  • 資深大佬 : newmlp

    2000 行不长,真不长

  • 資深大佬 : GuangXiN

    .cpp 有两千行很长吗?我司一个.php 有 1980 行。

  • 資深大佬 : yolee599

    head1.h
    head2.h
    head3.h

  • 資深大佬 : byzf

    所谓屎山叠加, 是把两千行复制一下, 然后在后面的两千行里改改, 变成四千行的文件, 这样换个人来维护代码, 就要在几十个长得几乎完全一样函数里找不同, 绝对维护不了.

  • 主 資深大佬 : AlohaV2

    @byzf 大哥你别说我真的发现一个很像很像的文件!!

  • 資深大佬 : hahaayaoyaoyao

    @byzf 写个脚本查一下

  • 資深大佬 : scukmh

    我司一个.py 1300 行.(

  • 資深大佬 : chinuno

    @AlohaV2 https://docs.oracle.com/cd/E19205-01/821-0389/bkafk/index.html
    网上搜搜用法都有了。
    模板一般用法放头文件是使用的时候隐式实例化生成对应类的函数实现。
    显式实例化放 cpp 里面就提前指定了要实现函数内容,编译这个 cpp 的时候目标文件就包含了函数实现。这样就不需要引入头文件推迟到真正使用的时候才生成函数实现

  • 主 資深大佬 : AlohaV2

    @chinuno 我用到的场景应该是需要隐式实例化的,或者说是我提供了一个模板类,然后不同的编译目标都可能根据自己的需求去实例化它。这种情况下放在 cpp 应该是无法编译的吧,所以就有了我提出的问题。

  • 資深大佬 : Wirbelwind

    我司 c++代码各种虚类,一个文件一个虚类,跳来跳去很麻烦。

    有些类型写得和 java 一样,还使用 DAO 命名的,然后 主设计开发者 去阿里当 p6 还是 p7 了

  • 資深大佬 : sadfQED2

    @GuangXiN 1980 行确定没少打个 0 ?我这里 19800 行的 php 代码一大把

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具