前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++那些事之有趣的面试问题

C++那些事之有趣的面试问题

作者头像
公众号guangcity
发布2024-06-18 13:50:27
1280
发布2024-06-18 13:50:27
举报
文章被收录于专栏:光城(guangcity)

最近想出一些有趣的问题,做一个小总结,你能回答上来几个?

注:完整答案会在星球揭秘。

问题1:std::variant构造函数会调用几个类型构造,1个?2个?n个?

代码语言:javascript
复制
std::variant<std::string, int> a1;
std::variant<X, Y> a2;

相关问题:

  1. std::variant 的默认构造行为如何?
  2. std::variant 包含类型不具有默认构造函数时会发生什么?
  3. 如何指定 std::variant 的初始值类型?

问题2:下面代码可以正常运行吗?如果可以运行说明理由,否则给出几个解决方案。

代码语言:javascript
复制
struct X {
    X(int v) : v_(v) {}
    int v_;
};

struct Y {
    Y(double v) : v_(v) {}
    double v_;
};

std::variant<X, Y> a1;

相关问题:

  1. 如何为 std::variant 添加具有默认构造函数的类型?
  2. std::variant 的类型列表中没有默认构造函数时,有哪些解决方案?
  3. 如何显式构造 std::variant 以避免默认构造问题?

问题3:什么是monostate,解决了什么问题?

相关问题:

  1. 如何在 std::variant 中使用 std::monostate
  2. std::monostate 的引入对 std::variant 的设计有哪些影响?
  3. 在什么情况下使用 std::monostate 是合适的?

问题4:defer_lock_t、try_to_lock_t、adopt_lock_t这三者的区别是什么?什么场景下使用?

相关问题:

  1. defer_lock_t 的使用场景和实现机制是什么?
  2. try_to_lock_t 如何处理互斥锁的尝试锁定?
  3. adopt_lock_t 在接管已有锁的所有权时有什么注意事项?
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档