问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

使用Visual Studio搭建C++20开发环境

创作时间:
作者:
@小白创作中心

使用Visual Studio搭建C++20开发环境

引用
CSDN
1.
https://m.blog.csdn.net/fstarSea/article/details/145579290

本文将详细介绍如何使用Visual Studio搭建C++20开发环境。通过本文,读者将学会如何在Visual Studio中配置C++20工程,包括安装C++模块、创建空项目、导入文件、设置工程属性等步骤。

简单两步使用Visual Studio完成C++20工程的配置

0 准备工作

0.1 VS中安装C++ 模块

  1. 找到
    Visual Studio Install
    ,点击
    修改
    ;
  2. 在弹出的界面上找到
    单个组件
    ,搜索
    C++ 模块
    ;
  3. 勾选
    适用于……生成工具的C++模块
    ,并点击
    修改
    完成C++模块的安装。

0.2 创建一个空项目

后续放一个链接

0.3 导入文件

  1. 工程文件(main.cpp math.cppm)可以在以下任意链接里找到:
    Gitee仓库 fstartsea-gitee-public-codes
    百度网盘 提取码:7980
    CSDN资源下载
  2. 将工程文件放入到项目路径下,并将其导入到工程中。

1 工程配置

1.1 打开工程属性页

1.2 设置模块依赖

  1. 在弹出的属性页左侧找到
    C/C++
    并点击C/C++左侧的下拉按钮;
  2. 在下拉选项中找到
    常规
    选项并点击;

  3. 常规
    选项界面找到
    扫描源以查找模块依赖关系
    ,并将其设置为

1.3 设置语言标准


  1. C/C++
    选项中找到
    语言
    选项卡,并点击;

  2. 语言
    选项界面设置C++语言标准为 C++20;
  3. 启用实验性的C++标准库模块
    选择
    是 (/experimental:module)
  4. 点击属性页的
    确认
    按钮完成配置。

2 可能出现的问题

2.1 找不到“iostream” “format”的标头单位

未安装0.1中介绍的
C++ 模块
。安装
C++ 模块
重新创建工程(将模块引入到工程中来)即可。

3 项目代码

3.1 math.ixx

//本实例中的代码摘抄自 Beginning C++20: From Novice to Professional, Sixth Editon
//章节11.1.1
export module math;
export auto square(const auto& x) {
    return x * x;
}
export const double lambda{ 1.303577269034296391257 };
export enum class Oddity {
    Even,
    Odd
};
bool isOdd(int x) {
    return x % 2 != 0;
}
export auto getOddity(int x) {
    return isOdd(x) ? Oddity::Odd : Oddity::Even;
}

3.2 main.cpp

//本实例中的代码摘抄自 Beginning C++20: From Novice to Professional, Sixth Editon
//章节11.1.1
import <iostream>;
import <format>;
import math;
int main(int argc, char* argv[]) {
    std::cout << "Lambda squared: " << square(lambda) << std::endl;
    int number{};
    std::cout << "\nPlease enter an odd number: ";
    std::cin >> number;
    std::cout << std::endl;
    //if (isOdd(number)) /*Error: indentifier not found: 'isOdd'*/
    //	std::cout << "Well done!" << std::endl;
    switch (getOddity(number)) {
        using enum Oddity;
    case Odd:
        std::cout << "Well done! And rember: you have to be odd to be number one!\n";
        break;
    case Even:
        std::cout << std::format("Odd, {} seems to be even?\n", number);
        break;
    default:
        break;
    }
    return 0;
}
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号