问题列表 - 第36726页

零大小的成员子对象.为什么不?

这是今天零系列对象和子对象系列中的第三个问题.标准明确暗示成员子对象不能具有零大小,而基类子对象可以.

struct X {}; //empty class, complete objects of class X have nonzero size
struct Y:X { char c; }; //Y's size may be 1 
struct Z {X x; char c;}; //Z's size MUST be greater than 1
Run Code Online (Sandbox Code Playgroud)

为什么不允许零大小的成员子对象只是像零大小的基类子对象?

TIA

在Konrad的回答之后编辑:考虑以下示例:

struct X{}; 
struct D1:X{};
struct D2:D1, X {}; //D2 has 2 distinct subobjects of type X, can they both be 0 size and located at the same address?
Run Code Online (Sandbox Code Playgroud)

如果两个相同类型X的基类子对象(如我的示例中)可以位于同一地址,那么应该能够成员子对象.如果他们不能,那么编译器会特别处理这种情况,因此它可以特别处理Konrad的示例(请参阅下面的答案),如果同一类中有多个相同类型,则不允许零大小成员子对象.我哪里错了?

c++

5
推荐指数
2
解决办法
985
查看次数

使用mysql拆分字符串

我想创建一个存储过程,它将匹配两个表.我的要求是根据用户传递的列作为输入匹配两个表.

句法:

CREATE PROCEDURE reconcile.matchTables(
  IN TAB1 VARCHAR(25), 
  IN TAB1 VARCHAR(25), 
  IN COLS1 VARCHAR(250) , 
  IN COLS2 VARCHAR(250))
Run Code Online (Sandbox Code Playgroud)

EX:

matchTables('table1', 'table2', 'col1#col2#col3#col4' , 'col2#col13#col1#col8')
Run Code Online (Sandbox Code Playgroud)

现在,存储过程应该像下面那样形成where子句

table1.col1 = table2.col2 
  and table1.col2 = table2.col13 
  and table1.col3 = table2.col1 
  and table1.col4 = table2.col8
Run Code Online (Sandbox Code Playgroud)

mysql string split

23
推荐指数
1
解决办法
4万
查看次数

如何在不分配内存地址的情况下保留内存地址

我想(在*nix中)分配一个大的,有条不紊的地址空间,但不会立即消耗资源,即我想保留一个地址范围,以后再分配它.

假设我做foo = malloc(3*1024*1024*1024)来分配3G,但是在1G计算机上有1G的交换文件.它会失败,对吗?

我想要做的是说"给我一个内存地址范围foo ... foo + 3G 我将分配 ",所以我可以保证这个区域内的所有分配都是连续的,但没有直接分配.

在上面的例子中,我想跟随一个bar = malloc(123)调用的foo = reserve_memory(3G)调用,该调用应该成功,因为reserve_memory尚未消耗任何资源,它只是保证bar不在范围内烟草工业富+ 3G.

稍后我会做一些像allocate_for_real(foo,0,234)那样消耗foo范围的字节0..234.此时,内核将分配一些虚拟页面并将它们映射到foo ... foo + 123 + N.

这在用户空间是否可行?

(关键在于foo中的对象需要连续,并且在创建后无法合理地移动.)

谢谢.

c linux memory

10
推荐指数
1
解决办法
2215
查看次数

将linq模型转换为通用列表

我有一个现有的类Image,在我的应用程序中广泛使用.我需要将一个通用的图像列表(List)返回到前端,但由于3ed方DB中没有存储过程,我正在查询我需要使用Linq to Sql.

我已经在我的DAL中创建了一个我正在查询的数据库的dbtm文件,如下所示:

ImageCat
    ImageId
    Name
    Width
    DateModified
    Height
    CatId
Run Code Online (Sandbox Code Playgroud)

我的Image类如下

public class Image
{
 public int Id { get; set; }
 public string Name { get; set; }
 public int Width { get; set; }
 public int Height { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的Linq to Sql如下:

var imageList = (from ic in db.ImageCats
   where ic.CatID.Contains(category)
 select ic).ToList();

var finalImageList = new List<Image>();
foreach (ImageCat ic in imageList)
{
 Image image = new Image();
 image.Id= ic.ImageID;
 image.Height = (int)ic.Height; …
Run Code Online (Sandbox Code Playgroud)

c# linq generics linq-to-sql

3
推荐指数
1
解决办法
5918
查看次数

在MIPS64中加载地址

这可能是一个简单明了的事情,我只是没有看到,但如何在MIPS64处理器中加载地址?在MIPS32处理器中,以下汇编程序伪指令:

la $at, LabelAddr
Run Code Online (Sandbox Code Playgroud)

扩展到:

lui $at, LabelAddr[31:16]
ori $at,$at, LabelAddr[15:0]
Run Code Online (Sandbox Code Playgroud)

看一下MIPS64指令集,我看到lui仍然会在32位字的上半部分加载一个16位立即数.似乎没有任何类型的扩展指令将立即加载到64位字的上部区域.那么,似乎要做一个la伪指令的等价物,我需要扩展到代码中,例如:

lui $at, LabelAddr[63:48]
ori $at, $at, LabelAddr[47:32]
sll $at, 16
ori $at, $at, LabelAddr[31:16]
sll $at, 16
ori $at, $at, LabelAddr[15:0]
Run Code Online (Sandbox Code Playgroud)

这让我觉得有点......因为加载一个地址这样基本的东西令人费解,所以它让我确信我忽略了一些东西.

我忽略了什么(如果有的话)?

mips mips64

7
推荐指数
1
解决办法
2331
查看次数

有没有办法为WPF应用程序显示启动画面?

Dupe:WPF动画启动画面

我想为我的WPF应用程序显示一个启动画面.我想要做的是在从文件加载字典时显示它(加载大约需要5-6秒).有没有办法在WPF中实现这一目标?我会很感激一些教程,因为这比我发布的其他问题要复杂一些.

wpf splash-screen

14
推荐指数
3
解决办法
2万
查看次数

使用XSLT跳过节点

在处理xml文件时是否可以跳过节点?例如:说我有以下xml代码:

<mycase desc="">
  <caseid> id_1234 </caseid>
  <serid ref=""/>    
  ......
  ......
  ......  
</mycase>
Run Code Online (Sandbox Code Playgroud)

我想让它看起来像这样:

<mycase desc="" caseid="id_1234">
 .....
 .....
</mycase>
Run Code Online (Sandbox Code Playgroud)

目前我这样做:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="2.0" exclude-result-prefixes="xs xdt err fn"
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:fn="http://www.w3.org/2005/xpath-functions"
            xmlns:xdt="http://www.w3.org/2005/xpath-datatypes"
            xmlns:err="http://www.w3.org/2005/xqt-errors">

          <xsl:output method="xml" indent="yes"/>
          <xsl:template match="/">
            <xsl:apply-templates/> 
          </xsl:template>

         <xsl:template match="mycase">          
            <xsl:element name="mycase">
               <xsl:attribute name="desc"/>
               <xsl:attribute name="caseid">
                 <xsl:value-of select="caseid"/>
               </xsl:attribute>
              <xsl:apply-templates/>
            </xsl:element>
         </xsl:template>
         ......
         ......
Run Code Online (Sandbox Code Playgroud)

这确实创造了我想要的东西,但因为<xsl:apply-templates/>它处理所有节点.虽然我希望它一起跳过处理caseid和serid.这也适用于其他节点,这些节点在新的XML结构中不可用.那么如何跳过我不想使用xslt处理的节点.

xml

5
推荐指数
1
解决办法
2万
查看次数

Python 相对导入导致语法错误:语法无效

我正在尝试将这个很棒的 python 模块Python-Chrono安装到我的 python 环境中,但它至少在 python 2.4.3 和 2.6.6 中失败,并显示以下错误消息:

Traceback (most recent call last): 
  File "setup.py", line 30, in ?
    import chrono
  File "/home/janne/python-chrono-0.3.0/chrono/__init__.py", line 22
    from . import calendar
         ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

设置使用相对导入机制,它应该可以正常工作,但在我的环境中它会导致此错误。

有没有办法解决这个问题?你在你的项目中看到过这种行为吗?

python relative-path python-import

3
推荐指数
1
解决办法
3590
查看次数

未定义的引用

链接器错误:

$ make
g++ -Wall -g main.cpp SDL_Helpers.cpp Game.cpp DrawableObject.cpp `sdl-config --cflags --libs` -lSDL_mixer
/tmp/ccdxzrej.o: In function `Game':
/home/brett/Desktop/SDL/Game.cpp:16: undefined reference to `Player::Player(Game*)'
/home/brett/Desktop/SDL/Game.cpp:16: undefined reference to `Player::Player(Game*)'
collect2: ld returned 1 exit status
make: *** [all] Error 1
Run Code Online (Sandbox Code Playgroud)

main.cpp中:

#include "Game.h"

int main()
{
    Game g;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Game.h:

#ifndef BRETT_GAME_H
#define BRETT_GAME_H

#include <cmath>
#include "SDL.h"
#include "SDL_Helpers.h"
#include <vector>

class DrawableObject;

class Game
{
public:
    SDL_Surface * screen;
    std::vector<DrawableObject*> sprites;

    Game();
};

#endif
Run Code Online (Sandbox Code Playgroud)

Game.cpp:

#include "Game.h" …
Run Code Online (Sandbox Code Playgroud)

c++ linker undefined-reference

1
推荐指数
1
解决办法
907
查看次数

使用distutils和pip部署子包

我想在Python中创建一套相互关联的包.我希望他们都在同一个包下,但可以作为单独的组件安装.

因此,例如,安装基础软件包将提供mypackage但是在mypackage.subpackage我单独安装之前不会有任何内容.

是否可以使用distutils和pip?

python distutils pip

4
推荐指数
1
解决办法
2345
查看次数