此代码在g ++ 6.1下成功编译,但在clang 3.8中出错:
class C;
class Base {
public:
virtual const C *getC();
};
class Derived : public Base {
public:
virtual C *getC();
};
Run Code Online (Sandbox Code Playgroud)
clang的错误如下:
$ dev/compilers/linux-x86_64-2.12.2/clang3.8/bin/clang++ -Wall -c testcovariantreturn.cxx
testcovariantreturn.cxx:10:20: error: return type of virtual function 'getC' is not covariant with the return type of the function it overrides ('C' is incomplete)
Run Code Online (Sandbox Code Playgroud)
如果完全定义了C类而不是前向声明,则没有错误.我的理解是,当覆盖虚方法时,协变允许"较小"的cv限定(即,从返回类型中删除const).
clang是否正确/允许需要完整类型,如果是,为什么?怎么可以在这里改变C的定义呢?
这不是完全学术性的,在大型代码库中我不愿意添加不必要的包含,我们尝试将声明转发为标准实践.
我正在尝试使用.svg扩展名反转图像文件css.我知道.png,.jpg文件可以使用css webkit属性反转.我是新的svg图像.是否可以.svg使用css?反转图像?
我试过用
-webkit-filter:invert(1);
filter:invert(1);
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
是否可以通过唯一标识符识别USB设备,例如操作系统具有Mac-ID,硬盘ID,以太网卡ID是否具有唯一标识符?我知道可以轻松更改USB分区的卷序列号,也可以在用户格式化时更改.
但是有ID可以使用WMI服务通过MFC(Visual C++或C#)检索某种"USB硬盘ID或USB硬件ID"吗?这样的标识符对于物理设备是否是唯一的?请澄清......
好的,直到今天早上我才对这些术语感到困惑.我想我有所不同,希望如此.
首先,令人困惑的是,由于预处理器已将头文件包含在包含函数的代码中,因此链接器链接到汇编器/编译器生成的目标文件的库函数是什么?部分混淆主要是由于我对头文件和库之间的差异的无知而产生的.
经过一段谷歌搜索和堆栈溢出(就是术语?:p),我收集到头文件主要包含函数声明,而实际的实现是在另一个称为库的二进制文件中(我仍然不是100%)确定这个).
所以,假设在以下程序中: -
#include<stdio.h>
int main()
{
printf("whatever");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
预处理器包括代码中头文件的内容.编译器/编译器+汇编器完成其工作,然后最终链接器将此目标文件与另一个实际存储方式printf()工作的目标文件组合在一起.
我的理解是正确的吗?我可能会离开...你能帮我吗?
编辑:我一直想知道C++ STL.它总是让我困惑的是它究竟是什么,所有这些标题的集合或什么?在阅读完回复之后,我可以说STL是一个目标文件/类似于目标文件的东西吗?
还有,我觉得在那里我可以读的像函数的函数定义pow(),sqrt()等等等等,我会打开头文件,而不是发现什么.那么,库中的函数定义是否是二进制不可读的形式?
我有以下C++代码与SQLite3一起用于测试目的.它是一个customer声明了回调函数的类.只要sqlite3_exec()从SQLite数据库返回结果(记录),就会调用此回调函数.
我不喜欢这种结构的是,处理结果的源代码位于类之外的回调函数中,而不是由sqlite3_exec()调用的类方法处理的结果.
在回调函数完成从SQL查询结果中提取值之后,我可以使用将在类方法中使用的全局变量.但是如果有多个记录并且多次调用回调函数会怎么样呢.然后我需要使用数组,除非我确保我只有单个结果.
我是否需要忘记回调函数并深入调用SQLite API?
或者我是否需要转到C++包装器,我想那里没有回调机制,结果会传递回类方法本身?
// customer
#include "Customer\customer.h"
//## begin module%50E6CCB50119.additionalDeclarations preserve=yes
static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
int i;
char* columnName;
char* columnValueString;
short int columnValueShortInt = 0;
int columnValueInt = 0;
cout << "begin of callback function\n";
for(i=0; i<argc; i++)
{
columnName = azColName[i];
if (strcmp(columnName, "FirstName")==0 || strcmp(columnName, "LastName")==0)
{
columnValueString = argv[i];
cout << "columnName = " << columnName << "; value = …Run Code Online (Sandbox Code Playgroud) 我使用XML布局文件创建了一个android对话框,如下所示:
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.enabledialog);
dialog.setTitle("Define message keys and setup");
Switch locationSwitch = (Switch) dialog.findViewById(R.id.locationSwitch);
Switch blareSwitch = (Switch) dialog.findViewById(R.id.blareSwitch);
final EditText locationEdit = (EditText) dialog.findViewById(R.id.locationEdit);
final EditText blareEdit = (EditText) dialog.findViewById(R.id.blareEdit);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.MATCH_PARENT;
dialog.show();
dialog.getWindow().setAttributes(lp);
Run Code Online (Sandbox Code Playgroud)
但是,我的XML文件的内容只占用屏幕的一半,所以当我显示对话框时,我显示额外的空间,这看起来不太好看:
如何修剪这个额外的空间?在android studio中,布局编辑器假设XML文件占据整个屏幕,但实际上,我只想要一个小的弹出窗口.
谢谢,
Ruchir
编辑:这是我的布局资源文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#1dd1e9">
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/locationSwitch"
android:layout_marginTop="46dp"
android:checked="false"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Blah"
android:id="@+id/textView" …Run Code Online (Sandbox Code Playgroud) 我实现了CoAP(libcoap)和DTLS(tinyDTLS)的实现.如何使用DTLS(tinyDTLS)进行集成CoAP(libcoap)?
我会很感激任何建议.
我想将自上而下的高度增长路径更改为Down-top它是否可以在CSS中使用?这是我的代码
http://jsfiddle.net/yasharshahmiri/1pkemq1p/3/
.buttom{
margin-top:200px;
margin-right:34px;
width:150px;
height:45px;
background:black;
float:right;
transition-duration:2s; }
.buttom:hover{
height:180px;
transition-duration:2s;}
Run Code Online (Sandbox Code Playgroud) 问题:
以下是受测试代码的仿制示例:
from datetime import datetime
def f(s):
try:
date = s.split(":")[1]
return datetime.strptime(date, "%Y%m%d")
except (ValueError, IndexError) as e:
# some code here
raise
Run Code Online (Sandbox Code Playgroud)
这是我目前拥有的一组测试:
from datetime import datetime
import unittest
from test_module import f
class MyTestCase(unittest.TestCase):
def test_valid_date(self):
self.assertEqual(f("1:20130101"), datetime(2013, 1, 1))
def test_invalid_date(self):
self.assertRaises(ValueError, f, "1:invalid")
Run Code Online (Sandbox Code Playgroud)
测试通过,如果我用--branch旗帜运行覆盖,我会得到100%的线和分支覆盖:
$ coverage run --branch -m unittest test
..
----------------------------------------------------------------------
Ran 2 tests in 0.003s
OK
$ coverage report
Name Stmts Miss Branch BrPart Cover
--------------------------------------------
test_module.py …Run Code Online (Sandbox Code Playgroud) 是否可以检查RecyclerView用户屏幕上的第一项或第二项是否可见?
例如当用户向下滚动时:
if (first item not visible to user) {
// do something
}
else if ( first item is visible){
// do something
}
Run Code Online (Sandbox Code Playgroud)
我目前所做的是向我的回收器添加一个侦听器,以便当用户向下滚动时,它会执行某些操作并向上滚动。
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 0) {
mAccountLayout.setVisibility(View.GONE);
mDateLayout.setVisibility(View.GONE);
Log.d("SCROLLINGDOWN","SCROLL");
} else {
mAccountLayout.setVisibility(View.VISIBLE);
mDateLayout.setVisibility(View.VISIBLE);
Log.d("SCROLLINGUP","SCROLL");
}
}
});
Run Code Online (Sandbox Code Playgroud)
但我需要的是检查第一项是否可见。
android ×2
c++ ×2
css ×2
c ×1
coap ×1
covariance ×1
coverage.py ×1
css-filters ×1
direction ×1
dtls ×1
header-files ×1
height ×1
html ×1
image ×1
iot ×1
java ×1
libcoap ×1
linker ×1
performance ×1
preprocessor ×1
python ×1
sqlite ×1
string ×1
svg ×1
testing ×1
unit-testing ×1
usb ×1
usb-drive ×1
usbserial ×1
visual-c++ ×1
xml ×1