将标准引入标准::web_view设施有什么好处?
What are the benefits of introducing std::web_view facility into the standard?
根据图书馆进化孵化器的最新会议,获得大力支持的设施之一是std::web_view
。
该提案在P1108R2中进行了描述,将用于
通过利用 现有的网络标准和技术。
std::web_view w("web_view test app");
w.set_uri_scheme_handler("wv", [&](const std::string &uri, std::ostream &os) {
std::cout << "request: " << uri << "n";
os << "<html><head><title>" << uri << "</title></head><body><p>" << uri << "</p><table>";
for (auto &a : args)
os << "<tr><td>" << a << "</td></tr>" << "n"; // we need some kind of "to_html" utility function.
os << "</table>";
os << "<p><a href="" << uri << "/more.html" << "">more</a></p>";
os << "<ul id='dl'></ul>";
os << "</body></html>";
从我从提议的例子中看到的,设计基本上会发出JavaScript/HMTL代码。
我对这种方法会产生什么好处没有正确的理解。有人可以提供更深入的设施视图吗?
我将首先以正确的StackExchange方式回答这个问题。您链接的文档在"简介"部分中非常清楚地说明了其动机:
现实情况是,大多数用户不使用命令提示符(即控制台 I/O)与应用程序交互,而是使用一些图形用户界面。然而,C++标准在这方面没有提供有用的工具,因此,用户要么需要使用特定于系统的API,第三方库,要么迁移到不同的编程语言。
[...]
不幸的是,这个委员会既没有时间也没有专业知识来通过直接创建一些足够全面的 API 来解决这个问题。[...]唯一可行的方法是接触解决这一问题的庞大而充满活力的社区,在这个领域创建便携式标准,并直接利用他们的努力。
因此,简而言之,C++社区没有足够的资源(人员和专业知识)来实现完整的GUI和高级服务库。毕竟,我自己只能提到一个在功能方面可以与HTML+JS相媲美的C++GUI库,那就是Qt库。
现在我还想在答案中添加更多固执己见的部分,因为这个问题有点要求它。即使没有JavaScript,HTML和CSS在几行代码中显示你想要的东西方面也非常强大。它们提出了一个广为人知的展示事物的框架。在大多数其他 GUI 框架中,您还会在"HTML 面板"中遇到 HTML,通常是在尝试呈现格式化文本时。
HTML+JavaScript允许初学者在编程一段时间后获得视觉上有趣的结果这一事实也非常重要。在没有编程知识的情况下在C++中启动 GUI 应用程序并不容易 - 您需要获取并构建一个 GUI 框架。如果我们让初学者能够通过HTML渲染他们用C++编写的程序,社区可能会增长。
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- 我应该返回什么而不是标准::shared_ptr<>&?
- 如何声明一个标准::提升直方图的向量?提升直方图的类型是什么?
- 根据 c++ 标准在该宏定义中推送/弹出宏时的行为是什么
- 标准库容器最简单、性能差的哈希类是什么?
- C++ 捕获异常后进行清理的标准方法是什么?
- 读取二进制文件的惯用C++17标准方法是什么
- 在 NTL 中构造多项式的标准方法是什么?
- C++标准在[basic.scope.hiding]中"same scope"到底意味着什么?
- C++标准兼容库容器的完整接口是什么?
- 什么是正确的 macOS vscode 智能感知C++包含标准库的路径?
- 根据标准,究竟什么是"declaration of an object"
- C++标准对局部变量的存储和分配有什么保证?
- C++标准提案代码:什么是 N 和 P?
- 此代码中的数组初始化样式是什么?这是标准的吗?
- 标准库to_string(双精度)在 vs2015 中给出错误的值.有什么解决办法吗?
- Eclipse CDT 项目中的缺省C++标准是什么?
- "AfxIsValidAddress"函数的等效标准函数是什么?
- 在C++中编写符合 IEEE-754 标准的双/浮子除法的最快方法是什么?