跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • Online Tools
  • 用户
  • 群组
折叠
品牌标识

D2Learn Forums

sunrisepeakS

sunrisepeak

@sunrisepeak
d2learn-dev
关于
帖子
195
主题
39
群组
1
粉丝
2
关注
3

帖子

最新 最佳 有争议的

  • MC++编码风格探讨 - 标识符命名风格
    sunrisepeakS sunrisepeak

    @SkyWingF 后面给项目增加一个 类似 "最佳实践" 章节总结这些:

    • 类型别名用using 代替 typedef
    • 引用的使用
    • 尽量少使用宏 非必要不使用
    • 属性标识 [[nodiscard]], [[deprecated]]
    • ...

  • MC++编码风格探讨 - 标识符命名风格
    sunrisepeakS sunrisepeak
    • https://github.com/mcpp-community/mcpp-style-ref
    import std;
    
    namespace mcpplibs {  // 1.命名空间全小写
    
    class StyleRef { // 2.类型名大驼峰
    
    private:
        int data_; // 3.私有数据成员 xxx_
        std::string fileName_; // std::string
    
    public: // 4. 构造函数 / Rule of Five(Big Five)单独放一个 public 区域
    
        StyleRef() { }
        StyleRef(const StyleRef &obj) { /* ... */ }
        StyleRef(StyleRef &&) { /* ... */ }
        StyleRef & operator=(const StyleRef &) { /* ... */ }
        StyleRef & operator=(StyleRef &&) { /* ... */ }
        ~StyleRef() { /* ... */ }
    
    public: // 5.公有函数区域
    
        // 函数名 下划线分割 / snake_case
        /* 7. fileName 小驼峰 */
        void load_config_file(std::string fileName) {
            // 成员函数如无特殊要求接口和实现不分离
            parse_(fileName);
        }
    
    private:
    
        // 6.私有成员函数以 `_` 结尾
        void parse_(std::string config) {
    
        }
    
    };
    
    }
    

    • 一、标识符命名风格
      • 1.0 类型名 - 大驼峰
      • 1.1 对象/数据成员 - 小驼峰
      • 1.2 函数 - 下划线(snake_case)
      • 1.3 私有表示 - _后缀
      • 1.4 其他

  • mcpp-sytle-ref: 现代C++编码/项目风格参考 | Modern/Module C++ Style Reference
    sunrisepeakS sunrisepeak

    @Phtato 目前默认是模块化的写法, 20之前的话 可以参考 google-style/cpp

    社区有个主要的任务的推模块化库和相关工具链使用和普及


  • [windows系统][环境配置]: d2mcpp项目, 配置完环境,打开是英文的, 如何配置中文?
    sunrisepeakS sunrisepeak

    最新版本该问题已经解决

    • 获取d2mcpp最新代码
    • 更新d2x到最新版本
    xim --update index
    xlings update d2x
    

  • mcpp在远程连接ubuntu的vscode中使用d2x checker命令,编辑器无法识别代码
    sunrisepeakS sunrisepeak

    @sunrisepeak 安装头文件后, 然后再在d2mcpp项目根目录运行xlings install 会重新自动配置和生成新的头文件索引

    这个问题后续版本应该就没有了

    • 修复: https://github.com/d2learn/xim-pkgindex/commit/cd05e240955d8208a7c4aa3869cbcad7a3d6a667

  • mcpp在远程连接ubuntu的vscode中使用d2x checker命令,编辑器无法识别代码
    sunrisepeakS sunrisepeak

    @fillSea 缺少linux头文件, 运行下面的命令安装linux-header 后再试一试

    xlings install linux-headers
    

  • 关于学习C++中的int main中new一个新的伐对象的困惑
    sunrisepeakS sunrisepeak

    @g202080272 在 关于学习C++中的int main中new一个新的伐对象的困惑 中说:

    Book paper_book("The Lord of the Rings");
    EBook* digital_book = new EBook("A Brief History of Time", 2048);
    std::cout << "--- Library is operating ---" << std::endl;
    delete digital_book;

    通过new创建的对象为动态内存分配的对象, 程序员将获得对象生命周期控制权, 例如后面可以使用delete去删除结束对象生命 - 即掌握了创建和销毁的控制权

    而对比paper_book的生命周期是由 编译器/作用域 来自动控制的

    两种对比

    • new/delete 动态分配对象: 程序员 将拥有该对象的生命周期控制权力, 且有责任管理好其生命周期
      • 优点: 更大的生命周期控制权
      • 缺点: 如果没有控制好, 如忘记释放 将会内存泄漏
    • 编译器 / 栈对象: 生命周期由编译期自动处理 (作用域)
      • 优点: 更低的心智负担, 不用担心释放问题
      • 缺点: 程序员无法自由控制生命周期的结束

    核心概念: 获得更大权力, 对应需要承担更大的责任


  • 讨论: 现代C++编码/项目风格
    sunrisepeakS sunrisepeak

    目前社区准备制作一份 现代C++ (特别是模块化) 相关的编码和项目组织结构方面的风格参考项目, 例如 模块和头文件兼容、命名风格、接口导出、以及常用技巧的"最佳"实践等.....

    欢迎大家在这里交流、讨论、反馈

    • https://github.com/mcpp-community/mcpp-style-ref

    0fc7c94b-4e00-4c33-ba5b-65d7967597fc-image.png


  • 安装node和vscode都显示git not found,但是有git版本号#xlings安装报错
    sunrisepeakS sunrisepeak

    参考: http://forum.d2learn.org/post/493


  • 安装node和vscode都显示git not found,但是有git版本号#xlings安装报错
    sunrisepeakS sunrisepeak

    用下面命令清理一下缓存, 然后再试一试

    xlings self clean
    

  • [windows系统][环境配置]: d2mcpp项目, 配置完环境,打开是英文的, 如何配置中文?
    sunrisepeakS sunrisepeak

    可以修改 config.xlings配置文件切换到中文

    Screenshot 2026-02-02 at 19.04.54.png

    如果使用的工具是最新d2x 0.1.1版本, 可以在项目根目录.d2x.json文件修改

    详情见项目配置文档: https://mcpp-community.github.io/d2mcpp/base/chapter_1.html


  • win环境下执行xlings checker 会报错为:error: wait events in poller failed! 当编写 vscode的时候会显示无法写入使得崩溃
    sunrisepeakS sunrisepeak

    @Saaqq 目前d2x工具使用c++重构了, 可以更新一下 应该不会有这个问题了

    先更新一下d2x工具

    xlings self update
    xim --update index
    xlings update d2x
    

    然后再到项目目录运行下面命令进入练习模式

    d2x checker
    

    注: 最新版本的d2x也支持配置AI大模型做智能引导, 也可以玩一玩

    33e4df78-8646-4b89-847f-41899668b251-image.png

    • 移植后的d2x仓库: https://github.com/d2learn/d2x
    • 交互式教程说明: https://d2learn.github.io/d2x-project-template/chapter_0.html

  • mcpp-sytle-ref: 现代C++编码/项目风格参考 | Modern/Module C++ Style Reference
    sunrisepeakS sunrisepeak

    写了一个现代C++模块化的编码/项目风格参考文档, 附有项目/代码示例, 欢迎交流


    简介

    cd01c9a0-0731-4679-a0e8-ba2a52293edc-image.png

    目录

    81b1e6f9-deb4-4fa4-8bd1-23a9233007d2-image.png


    仓库地址: https://github.com/mcpp-community/mcpp-style-ref


  • llmapi项目在使用xmake构建时无法找到std.cc
    sunrisepeakS sunrisepeak

    llmapi 和 xlings 都算是初期项目, 有什么问题或想法都可以反馈到项目issue里


  • Linux系统编程(2)文件IO
    sunrisepeakS sunrisepeak

    感觉可以把这个系列整理成一个GitHub 仓库 包含文档和对应的练习或演示代码
    让读者上手实操/改改东西 用 strace 等一些工具 追一追 系统调用 观察真实机器上的效果 之类的
    体验感应该能增强不少


  • llmapi项目在使用xmake构建时无法找到std.cc
    sunrisepeakS sunrisepeak

    感觉可能和gcc工具链有关
    llmapi我好想忘记加xlings的依赖描述文件了, d2x是加了的
    可以, 手动使用 xlings install gcc@15.1 安装gcc15
    然后在项目目录清除一下缓存

    xmake clean
    rm .xmake build -r
    xlings install gcc@15.1
    g++ --version
    xmake build
    

    如果上面过程出现问题 可以在把log贴上来


  • llmapi项目在使用xmake构建时无法找到std.cc
    sunrisepeakS sunrisepeak

    @mikami-w 编译一个最小的 import std.compat; 程序 可以通过吗


  • 项目想法: mcpp-start: 完全0基础的现代C++社区教程项目 - 想法讨论
    sunrisepeakS sunrisepeak

    @Yozi 在 项目想法: mcpp-start: 完全0基础的现代C++社区教程项目 - 想法讨论 中说:

    AI 辅助学习确实很香,但也有个坑:如果引导/提示词没调好,AI 输出太多反而容易理解得“热闹但不深”,学着学着有点迷迷糊糊

    目前在重新实现d2x这个工具 (还没替换原版本), 目前使用的是 固定提示词模板 + 对应原练习代码 + 包含练习意图 的引导方式, 可能能缓解一些这个问题

    e1368bcd-de54-4c12-ae96-199f9aa901a7-image.png

    • https://github.com/d2learn/d2x/blob/main/src/assistant.cppm

    这不过, 目前还是初步尝试, 后面打算多探索一些这方面


  • 项目想法: mcpp-start: 完全0基础的现代C++社区教程项目 - 想法讨论
    sunrisepeakS sunrisepeak

    @Yozi 在 项目想法: mcpp-start: 完全0基础的现代C++社区教程项目 - 想法讨论 中说:

    比如一个小型游戏:我自己学 Rust 时就拿“穿越火线”当主题,用游戏机制去类比代码概念——背包像数组/容器、武器像结构体、状态切换像枚举/状态机……会特别好理解

    这是一个好的建议, 用一个具体可感知的目标/项目, 然后把项目拆解 和 基础知识对应 可能是一个比较好的切人点

    只不过, 可能项目要选一个简单一点的 (或许实现一个简单的Agent例子不错), 穿越火线 这种对应应该是有一些编程基础, 然后需要做个项目, 把技能和应用建立联系, 感觉和我们现在在策划的 模块化实现 Mini STL 标准类似

    对于初学者 或 几乎没有接触过编程的同学

    • 兴趣 & 结果可感知
    • 发展及行业应用
    • 编程概念 & C++中对应的实现

    感觉可能 一半代码 + 一半C++相关的人文 才能坚持下去


  • 项目想法: mcpp-start: 完全0基础的现代C++社区教程项目 - 想法讨论
    sunrisepeakS sunrisepeak

    项目难度/属性

    • 0基础入门级教程
    • d2mcpp 前置教程 / 消除上手难度

    面向人群

    • 编程初学者 / C++编程初学者/爱好者

    目标(初步

    • 了解C++发展/背景及相关行业
    • 熟悉基础的编程概念和思想, 以及对应在C++中的实现和具体形式
    • C++相关工具链及环境
    • 了解/实现一个最小C++工程(构建工具, 项目结构, 外部库引用, 测试...

    如果你是一个C++初学者, 对上手d2mcpp项目, 感觉有些吃力, 可以反馈一些关于对入门级教程项目的一些想法

    • 例如: 你期望一个入门级的C++教程项目, 有哪些方面/性质, 能让自己更容易学习和上手?

    欢迎大家评论区交流讨论, 来帮助我们调整和优化项目的开发和设计...

  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
d2learn forums Powered by NodeBB
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 标签
  • 热门
  • Online Tools
  • 用户
  • 群组