- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下代码编译并链接到 Visual Studio
(2017 年和 2019 年都带有 /permissive-
),但不与 gcc
一起编译或 clang
.
foo.h
#include <memory>
struct Base {
virtual ~Base() = default; // (1)
};
struct Foo : public Base {
Foo(); // (2)
struct Bar;
std::unique_ptr<Bar> bar_;
};foo.cpp
#include "foo.h"
struct Foo::Bar {}; // (3)
Foo::Foo() = default;main.cpp
#include "foo.h"
int main() {
auto foo = std::make_unique<Foo>();
}
main.cpp
,
Foo::Bar
必须是完整类型,因为在
~Foo()
中尝试删除它,它是隐式声明的,因此在访问它的每个翻译单元中都隐式定义。
Visual Studio
不同意,并接受此代码。此外,我发现以下更改使
Visual Studio
拒绝代码:
(1)
非虚拟 (2)
内联 -- 即 Foo() = default;
或 Foo(){};
(3)
Visual Studio
在以下条件下使用它时,不会在任何地方定义隐式析构函数:
Visual Studio
是否在任何地方指定,或者至少是已知的?做这个? 最佳答案
我相信这是 MSVC 中的一个错误。至于std::default_delete::operator()
,标准说[unique.ptr.dltr.dflt/4] :
Remarks: If T is an incomplete type, the program is ill-formed.
If a program contains a violation of any diagnosable rule or ..., a conforming implementation shall issue at least one diagnostic message.
The set of diagnosable rules consists of all syntactic and semantic rules in this document except for those rules containing an explicit notation that “no diagnostic is required” or which are described as resulting in “undefined behavior”.
static_assert
诊断类型完整性。 MSVC 似乎不执行这样的检查。如果它默默地传递了一个参数
std::default_delete::operator()
至
delete
,然后,这会导致未定义的行为。这可能与您的观察相符。它可能会工作,但在文档(作为非标准 C++ 扩展)保证之前,我不会使用它。
关于c++ - 编译器能否将隐式声明的虚拟析构函数的实现放在一个单独的翻译单元中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58506694/
我当前项目中的许多类都有几个只能从类本身内部调用的属性和方法。此外,根据类(class)的当前状态,它们可能会扰乱类(class)的工作。 目前,所有这些接口(interface)都在 .h 文件的主
我想使用ngbTabSet将nav-pills in card-header 和tab-content in card-body。但我不知道该怎么做。 这是我尝试实现的示例(使用 bootstrap.
我正在浏览文档以查找如何允许放置在停靠栏图标上。据我所知,建议您使用 LSItemContentTypes,因为 CFBundleTypeOSTypes 已弃用。但是,我无法让 LSItemConte
我正在尝试在书签中使用 jquery UI 作为 slider 。并且 jquery ui 要求在普通 jquery 文件之后包含该文件。 所以到目前为止我所尝试的只是将脚本附加到 header ,同
您好,我尝试了广泛的谷歌搜索,但似乎没有任何帮助。 这是我的场景: 公司 Logo 存储在外部域/网址(矩形)中。 带有谷歌地图的 Ionic 应用程序,将这些 Logo 作为标记放置在 map 上。
我今天在阅读我的一些 C# 代码时发现了这一行: if (ProgenyList.ItemContainerGenerator.Status != System.Windows.Controls.Pr
我刚遇到this question在 Go FAQ 中,它让我想起了困扰我一段时间的事情。不幸的是,我真的不明白答案是什么。 似乎几乎所有非 C 类语言都将类型放在变量名之后,如下所示: var :
这是有效的 HTML 吗? 最佳答案 作为元素可以包含 phrasing content ,以及属于该组,则有效。 从语义上(并且具有一些常识),如果唯一的内容是 , 不;如果它同时包含文本和图像
这是有效的 HTML 吗? 最佳答案 作为元素可以包含 phrasing content ,以及属于该组,则有效。 从语义上(并且具有一些常识),如果唯一的内容是 , 不;如果它同时包含文本和图像
我有两本 T.Parr 写的关于 ANTLR 的书,我到处都看到美元符号和符号的引用。它也对我有用: term : IDENT -> { new TokenNode($IDENT) }; 或更复杂的东
我在实现段控制时遇到了一些问题。因为我希望它是一个固定的标题,所以当我滚动时我总是可以看到它,我已经在 - (UIView *)tableView:(UITableView *)tableView v
我有一个 20x36px (10x18pt) 的箭头图像,当我选择一个 UIImageView 时,将它拖到我的 View Controller 上然后设置图像,它总是模糊的。我只在我的项目中包含 @
How can I put background image when I hover a link Insert Bg in this a when hov
我需要在我的 .container 中添加(最新的第一个)新分区,但在 .controls (按钮)之后。可能吗? 注意:添加新的分区来保存按钮下方的前置控件对我来说不是一个选择。 HTML 需要保持
我是一名优秀的程序员,十分优秀!