【发布时间】:2021-03-02 03:57:17
【问题描述】:
在std::span constructors 上的文档中,没有一个接受 std::vector 的文档。
那么,这段代码(source page)是怎么编译的呢?
// createSpan.cpp
#include <algorithm>
#include <iostream>
#include <span>
#include <vector>
int main() {
std::cout << std::endl;
std::cout << std::boolalpha;
std::vector myVec{1, 2, 3, 4, 5};
std::span mySpan1{myVec}; // (1)
std::span mySpan2{myVec.data(), myVec.size()}; // (2)
bool spansEqual = std::equal(mySpan1.begin(), mySpan1.end(),
mySpan2.begin(), mySpan2.end());
std::cout << "mySpan1 == mySpan2: " << spansEqual << std::endl; // (3)
std::cout << std::endl;
}
即在 (1) 处调用了 std::span 的哪个构造函数?
【问题讨论】: