问题列表 - 第36555页

处理SystemVerilog包中的参数化

SystemVerilog添加了包以提供公共代码段(函数,类型,常量等)的命名空间.但由于软件包未实例化,因此无法对其进行参数化,因此处理参数化成员是有问题的.在实践中,我发现这是非常有限的,因为我的自定义类型通常有一些参数指示字段宽度等.

我通常通过使用带有默认值的参数处理这个问题,并且只是理解我需要返回更改某些应用程序的包源代码,这对我来说似乎非常错误.但我还没有找到一种方法来更清洁地处理这个问题.例如:

package my_pkg;
    parameter ADDR_MSB = 7;
    parameter DATA_MSB = 31;

    typedef struct {
        logic [ADDR_MSB:0] address;
        logic [DATA_MSB:0] data;
    } simple_struct_t;

endpackage
Run Code Online (Sandbox Code Playgroud)

有没有人找到一个更清洁的方式处理这个?我很乐意听到它,因为我认为软件包是SV的一个非常强大的补充,可以实现更安全的代码重用,但这种限制非常严重.

verilog system-verilog

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

插入对象作为键无法编译?

我在编译时遇到了麻烦.我不明白编译器抛出的错误.一些代码来说明问题如下.

#include <map>

using namespace std;

class Thing
{
public:
    Thing(int n):val(n) {}

    bool operator < (const Thing& rhs) const
    {
        return val < rhs.val;
    }

    int getVal() { return val; }

private:
    int val;
};


int main(int argc, char* argv[])
{
    std::map<Thing, int> mymap;
    Thing t1(1);
    Thing t2(10);
    Thing t3(5);

    mymap[t1] = 1; // OK

    mymap.insert(t1); // Compile error
}
Run Code Online (Sandbox Code Playgroud)

现在编译错误消息:

test.cpp:在函数'int main(int,char**)'中:test.cpp:34:错误:没有用于调用'std :: map,std :: allocator >> :: insert(Thing&)的匹配函数'/usr/include/c++/4.4/bits/stl_map.h:499:注意:候选者是:std :: pair,std :: _ Select1st>,_ Compare,typename _Alloc :: rebind> …

c++ stl

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

可以像在VB.NET中一样在C#中导入静态类吗?

有没有办法在C#中"导入"静态类,比如System.Math

我已经包括了一个比较.

Imports System.Math

Module Module1

    Sub Main()
        Dim x As Double = Cos(3.14) ''This works
    End Sub

End Module
Run Code Online (Sandbox Code Playgroud)

VS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Math; //Cannot import a class like a namespace

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            double x = Math.Cos(3.14);
            double y = Cos(3.14); //Cos does not exist in current context
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# vb.net import using

5
推荐指数
3
解决办法
3752
查看次数

Java异常是否值得拥有自己的文件?

每当我定义一个新的异常时,我倾向于做两件事之一:

  1. 创建一个例外文件,其中包含项目中定义的所有新例外的列表.
  2. 将每个定义的异常放在与抛出它的类相同的文件中.

Netbeans不喜欢它,当我在同一个文件中定义公共异常时,如第2点中的另一个类.虽然我还没有尝试过,但我相信它会因为类似的原因而对我大喊大叫同一文件中的多个异常与第1点中的异常相同.

每个异常应该有自己的文件,还是Netbeans会接受其他一些风格?我是Java和Netbeans的新手,我很想知道合适的风格是什么.

java netbeans coding-style exception

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

WinAPI双缓冲

默认的winAPI应用程序没有双缓冲.相反,它确实能够确保只绘制需要绘制的内容,并使其具有无缝外观.但是,当您调整窗口大小时,需要重新绘制整个窗口,这会导致控件,选项卡上的背景以及选项卡的白色之间出现闪烁.

所以我的问题是,在我的应用程序中支持双缓冲的最简单方法是什么?

c++ winapi double-buffering

4
推荐指数
2
解决办法
5044
查看次数

在Objective-J中有其他语言可以在浏览器中"编译"到JavaScript吗?

Objective-J直接在浏览器上编译/转换为JavaScript.(这与在服务器上执行此操作形成对比,正如GWT对Java所做的那样.)这种方法是否已针对除Objective-J之外的任何语言实现?

javascript compiler-construction objective-j

6
推荐指数
2
解决办法
878
查看次数

WPF:我可以强制窗口重新评估其所有绑定和验证吗?

我可以强制窗口重新评估其所有绑定和验证吗?

出于某种原因,似乎在一个奇怪的情况下忽略了INotifyPropertyChanged.PropertyChanged,我正在寻找一种解决方法,直到找到真正的原因.

wpf binding

7
推荐指数
2
解决办法
4000
查看次数

在jQuery模板中获取当前项索引的最简单方法

我将一个对象数组传递给jQuery模板(官方jquery-tmpl插件):

$("#itemTmpl").tmpl(items).appendTo("body");

<script id="itemTmpl" type="text/x-jquery-tmpl">
    <div class="item">Name: ${name}, Index: ${???}</div>
</script>
Run Code Online (Sandbox Code Playgroud)

在模板中显示项目索引的最简单方法是什么?优选地,不使用分离的外部函数,而不改变传递的对象结构,并且不改变模板结构(转换为{{each}}).是否有任何内置变量可能存储当前数组索引?

更新 我创建了一个建议将数组索引公开给模板项的票证,但它被关闭为无效...

jquery jquery-templates

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

导入如何工作.为什么导入的模块不继承其他导入的模块

我只是"想"我理解导入和模块是如何工作的,但显然我需要更多的学校教育.

这是一个示例程序(只是一个测试案例,我正在做的事情,范围和规模要大得多)和一个模块:

quick.py

import gtk
from quick_window import *

w.show_all()
gtk.main()
Run Code Online (Sandbox Code Playgroud)

quick_window.py

w = gtk.Window()
w.connect('destroy', lambda w: gtk.main_quit())
l=gtk.Label('Hello')
w.add(l)
Run Code Online (Sandbox Code Playgroud)

我跑了

$ python quick.py
Traceback (most recent call last):
  File "quick.py", line 2, in <module>
    from quick_window import *
  File "/home/woodnt/Dropbox/python/weather_project/plugins/quick_window.py", line 3, in <module>
    w = gtk.Window()
NameError: name 'gtk' is not defined
Run Code Online (Sandbox Code Playgroud)

为了使它工作,我还必须在模块中导入(呃,重新导入)gtk,如下所示:

import gtk

w = gtk.Window()
w.connect('destroy', lambda w: gtk.main_quit())
l=gtk.Label('Hello')
w.add(l)
Run Code Online (Sandbox Code Playgroud)

我为什么要多次导入gtk?这是否意味着我在内存中有2个"gtk's"?

我是否必须在该模块中导入我需要的每个模块中的所有内容?

我知道每个模块都有自己的命名空间,但我认为它还继承了"全局",包括来自调用程序的导入模块.

我一直认为from module import*就像将代码剪切并粘贴到该位置一样.还有另一种方法吗?

非常感谢帮助.

Narnie

python import module

7
推荐指数
2
解决办法
3864
查看次数

python全局对象缓存

关于应用架构的小问题:

我有一个python脚本,作为守护进程运行.

在里面我有很多对象,都是从一个类继承的(让我们把它命名为'entity')

我还有一个主要对象,让它成为'topsys'

实体由pair(id,type(= class,粗略))标识,并且它们以许多邪恶的方式连接.它们也一直在创建和删除,并且需要访问其他实体.

所以,我需要一种存储,基本上是字典词典(每种类型一个),包含所有实体.

问题是,更好的是:将这个字典作为对象属性或类实体附加到'topsys',作为类的属性?我会选择第二个(所以实体不需要知道'topsys'的存在),但我不喜欢直接在类中使用属​​性.或许还有另一种方式?

python design-patterns class-design global-variables

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