测验概述
已完成 0/10 个问题
问题:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
信息
Java 测试
您已完成过测验,因此您不能再测验。
测验载入中...
您必须登入或注册才能开始测验。
您必须先完成以下测验才能开始:
测验结果
答对 0/10 个问题
答题时间:
时间已花费
类别
- 未分类 0%
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 已答
- 回顾
-
1/10问题
1. 问题
关于C++17的std::pmr::memory_resource,错误的是
正确
std::pmr系列容器直接使用memory_resource,无需传统std::allocator。
错误
std::pmr系列容器直接使用memory_resource,无需传统std::allocator。
-
2/10问题
2. 问题
以下代码的输出是什么
#include <iostream> #include <string> using namespace std::literals; void foo(std::string_view sv) { std::cout << sv; } int main() { foo("hello"s); }
正确
std::string可隐式转换为std::string_view,这是安全且高效的转换。
错误
std::string可隐式转换为std::string_view,这是安全且高效的转换。
-
3/10问题
3. 问题
关于C++20的std::span,正确的是
正确
std::span要求连续内存(如数组/vector),但本身不拥有数据且可进行边界检查。
错误
std::span要求连续内存(如数组/vector),但本身不拥有数据且可进行边界检查。
-
4/10问题
4. 问题
以下代码的编译结果是什么
#include <iostream> template<auto N> void foo() { std::cout << N; } int main() { foo<42>(); foo<3.14>(); }
正确
非类型模板参数auto N在C++20前仅允许整型等字面类型,double需要C++20支持。
错误
非类型模板参数auto N在C++20前仅允许整型等字面类型,double需要C++20支持。
-
5/10问题
5. 问题
关于std::expected(C++23),错误的是
正确
std::expected可能包含值或错误,这是其核心设计目的
错误
std::expected可能包含值或错误,这是其核心设计目的
-
6/10问题
6. 问题
以下代码的输出是什么
#include <iostream> #include <source_location> void log(const std::source_location& loc = std::source_location::current()) { std::cout << loc.line(); } int main() { log(); }
正确
C++20的std::source_location会在调用点捕获位置信息(如行号)。
错误
C++20的std::source_location会在调用点捕获位置信息(如行号)。
-
7/10问题
7. 问题
关于std::move_only_function(C++23),正确的是
正确
std::move_only_function如其名,仅支持移动语义,适合包装只移动类型。
错误
std::move_only_function如其名,仅支持移动语义,适合包装只移动类型。
-
8/10问题
8. 问题
以下代码的编译结果是什么
#include <iostream> struct S { constexpr int foo() const { return 42; } virtual constexpr int bar() const { return 0; } }; int main() { constexpr S s; static_assert(s.foo() == 42); }
正确
C++20起允许虚函数为constexpr,此代码完全合法
错误
C++20起允许虚函数为constexpr,此代码完全合法
-
9/10问题
9. 问题
关于std::format(C++20),错误的是
正确
std::format支持位置参数(如{0})但不是必须的,简单情况可直接用{}。
错误
std::format支持位置参数(如{0})但不是必须的,简单情况可直接用{}。
-
10/10问题
10. 问题
以下代码的输出是什么
#include <iostream> #include <version> #ifdef __cpp_lib_ranges #include <ranges> void foo() { std::cout << "Ranges"; } #else void foo() { std::cout << "No Ranges"; } #endif int main() { foo(); }
正确
输出取决于编译器是否支持C++20的Ranges库,这是特性测试宏的典型用法。
错误
输出取决于编译器是否支持C++20的Ranges库,这是特性测试宏的典型用法。