小编isu*_*dfv的帖子

如何使用 CMake 执行“导入 std”

根据thisCMake 3.28,我们应该能够import std 无需任何额外的努力。但我在下面的简单演示中遇到了错误Module 'std' not found

import std;

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)
cmake_minimum_required(VERSION 3.28)
project(module_tst)

set(CMAKE_CXX_STANDARD 23)

add_executable(demo)
target_sources(demo
    PRIVATE
    main.cpp
)
Run Code Online (Sandbox Code Playgroud)

import std只要我检查了C/C++ -> General -> Scan Sources for Module Dependencies. 我在 cmake 文档中发现了类似的内容,CXX_SCAN_FOR_MODULES但将其设置为没有任何区别。有什么遗漏吗?

我正在使用最新的 cmake 3.28 rc1 和 VS 17.8.0 Preview 4.0

c++ cmake c++23

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

为什么使用 std::istream_iterator 消除括号作为函数声明的歧义?

auto queue = [](string str) {
    istringstream ss(str);
    //std::copy(std::istream_iterator<string>(ss),
    //          std::istream_iterator<string>(),
    //          std::ostream_iterator<string>(std::cout, " "));

    //deque<string> q(std::istream_iterator<string>(ss), std::istream_iterator<string>{});
    deque<string> q(std::istream_iterator<string>(ss), std::istream_iterator<string>());
    return q;
};

Run Code Online (Sandbox Code Playgroud)

为什么编译器会抱怨

括号作为函数声明已消除歧义 [-Wveshing-parse]

如果我用 构建一个容器istream_iterator<string>()

和容器构造函数中的参数有什么区别吗std::copy

c++ declaration ambiguity function-declaration

3
推荐指数
1
解决办法
5325
查看次数