在将对象添加到数据结构之前,我试图确保对象对齐vector。响应警告warning C4316: 'Basic' : object allocated on the heap may not be aligned 16,我对该对象有以下内容Basic:
class Basic
{
public:
Basic();
~Basic();
};
Run Code Online (Sandbox Code Playgroud)
这是这里的标准对象。接下来,unique_ptr将a 分配给new的实例,Basic以获得这样做的好处。(与标准指针相反)
unique_ptr<Basic> e_Basic{new Basic()};
Run Code Online (Sandbox Code Playgroud)
我尝试对齐数据,以便以后可以避免对齐问题:
e_Basic.reset =_aligned_malloc((size_t)sizeof(Basic), (size_t)(16 + (sizeof(Basic) % 16))); //Verify alignment.
Run Code Online (Sandbox Code Playgroud)
最后将指针添加到vector数组中。
LocalBasicQueue.push_back(move(e_Basic));
Run Code Online (Sandbox Code Playgroud)
编译器说它是犹太洁食,但我的“胡扯什么?” 代码意识正在消失。这会导致指向(肯定)对齐代码的指针吗?
以这种方式声明( e_Basic.reset) 等于指针[由 ] 返回并调用它,分配新指针是否可以?_aligned_malloc()unique_ptr<>
在编写HTML5页面(包括PHP)时,我注意到当doctype切换到html5时,createElement()停止工作
<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)
代码是使用Javascript创建非常标准的元素:
function Rhit(){
var Hit=document.createElement('div');
if(Hit){
alert('Hit assigned.');
Hit.setAttribute('id','Hits');
if(document.body.appendChild(Hit)){
alert('Hit transferred to body; setting styles.');
Hit.style.width='400';
Hit.style.height='400';
Hit.style.position='absolute';
Hit.style.right='0';
Hit.style.top='0';
Hit.style.backgroundColor='#777777';
}
}
else{
alert('Create Element Error, please debug.');
}
}
Run Code Online (Sandbox Code Playgroud)
(我在html5 doc类型下调试了一下......有点.)警报弹出,但是在html5 doctype下没有绘制div标签.(使用常规html超级沙箱模式可以正常工作)
我错过了什么吗?
(此外,所有代码都显示在浏览器源代码中.)似乎代码正在解析但未绘制?
编辑:这是一个完整的演示.与此同时,我将这些评论添加到:
<html> <!--if !html5 document draws.-->
<head>
<script>
function proc(){
var foo=document.createElement('div');
//Test foo creation.
if(foo){
alert('Hit assigned.');
foo.setAttribute('id','Hits');
//test foo location assignment.
if(document.body.appendChild(foo)){
alert('Hit transferred to body; setting styles.');
//Set all other stuff.
foo.style.width='400';
foo.style.height='400';
foo.style.position='absolute';
foo.style.right='0';
foo.style.top='0';
foo.style.backgroundColor='#777777'; …Run Code Online (Sandbox Code Playgroud) 随着编程变得更加复杂,对结构数据执行操作的需求变得可见。是否有将结构类型转换为其成员数组的转换方法,以便:
struct FooDesc Foo{
int num_Foo;
int num_Bar;
int GreenFoo;
};
Run Code Online (Sandbox Code Playgroud)
可以表示为:
int Bar[2];
Run Code Online (Sandbox Code Playgroud)
或者更好,动态为:
vector<int> Bar;
Run Code Online (Sandbox Code Playgroud)
目标是将数据结构转换或重新表示为可迭代形式,而不过度使用赋值运算符。