问题列表 - 第13980页

在另一个命名空间中定义符号

这是我的问题:在标题中我定义了一个结构模板type_to_string,其目的是定义一个对应于给定类型参数的字符串:

namespace foo {

    template <typename T>
    struct type_to_string
    {
        static const char * value;
    };
}

template <typename T>
const char * foo::type_to_string<T>::value = "???";
Run Code Online (Sandbox Code Playgroud)

我还定义了字符串的默认值.

现在,我想使用宏来定义新类型:

#define CREATE_ID(name)                               \
struct name;                                          \
                                                      \
template<>                                            \
const char * foo::type_to_string<name>::value = #name;
Run Code Online (Sandbox Code Playgroud)

问题是我希望宏可以在命名空间中使用,如:

namespace bar
{
    CREATE_ID(baz)
}
Run Code Online (Sandbox Code Playgroud)

这是不可能的,因为type_to_string<T>::value必须在封闭的命名空间中定义foo.

这是我得到的编译错误:

[COMEAU 4.3.10.1] error: member "foo::type_to_string<T>::value [with T=bar::baz]"
cannot be specialized in the current scope

[VISUAL C++ 2008] error C2888: 'const char *foo::type_to_string<T>::value' : …
Run Code Online (Sandbox Code Playgroud)

c++ templates namespaces

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

计算处理时间

我正在使用C#/ .NET 1.1; 如何计算处理时间,例如将文件从1个系统复制到另一个系统?

c#

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

如何告诉Django ORM反转查询结果的顺序?

为了理解对Django模型的查询,我一直试图通过以下查询获得最后3个有效的Avatar模型:

newUserAv = Avatar.objects.filter(valid=True).order_by("date")[:3]
Run Code Online (Sandbox Code Playgroud)

然而,这反过来给了我按日期排序的前三个头像.我确信这很简单,但我在Django文档中找不到它:如何选择最后三个头像对象而不是前三个?

python django

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

将Google"我的地图"图层添加到Google Maps Javascript API

我想在我们的网站上放置一张谷歌地图.

我知道可以使用Javascript将自定义标记添加到地图中,但我宁愿使用Google的MyMaps服务,因为我的同事可以在没有任何编程知识的情况下编辑地图.

您可以将自定义"我的地图"添加到嵌入式网站iframe.我正在使用Javascript API,因此我可以利用API提供的控件(例如通过自定义控件缩放或更改地图上的位置而不触及地图本身).

我可以在My API地图中插入使用"我的地图"创建和保存的地图作为图层吗?

javascript google-maps

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

C#ASP.NET用户控件如何处理div点击服务器端?

我正在创建一个用户控件.用户控件是一个div,我想向它添加一个click事件.

编辑:

对其具有此控件的页面必须处理此事件.

我怎样才能做到这一点?

c# asp.net user-controls

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

在jasper报告详细信息中打印序列号

我创建了一个碧玉报告.在该详细报告中,我有"serialNumber"列.该列希望自动增量,并且统计信息为"1".我hibernate用于查询.示例代码是:

<detail>
    <band height="17" splitType="Stretch">
        <textField isBlankWhenNull="true">
            <reportElement x="12" y="0" width="27" height="15"/>
            <textElement/>
            <textFieldExpression class="java.lang.Integer"><![CDATA[serialNumber]]>
            </textFieldExpression>
        </textField>
        <textField>
            <reportElement x="51" y="0" width="37" height="15"/>
            <textElement textAlignment="Center" verticalAlignment="Middle"/>
            <textFieldExpression class="java.lang.String"><![CDATA[$F{date}]]>
            </textFieldExpression>
        </textField>
        <textField>
            <reportElement x="138" y="0" width="75" height="15"/>
            <textElement textAlignment="Center" verticalAlignment="Middle"/>
            <textFieldExpression class="java.lang.String"><![CDATA[$F{time}]]>
            </textFieldExpression>
        </textField>
    </band>
</detail>
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助在jasper报告中打印序列号.

jasper-reports

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

如何从C/C++中止MATLAB m文件功能?

我将一个MATLAB项目部署到一个DLL中,从C++中调用,它运行得很好.快乐的时光.

但是当用户要求取消操作时会发生什么?

我尝试创建一个global名为的变量UserAborted.在MATLAB中运行long函数之前,我将其初始化为0.我还写了以下两个函数:

function AbortIfUserRequested
    global UserAborted

    if (UserAborted == 1)
        error('User Abort');
    end
end

function UserAbortLongFunction
    global UserAborted

    UserAborted = 1;
end
Run Code Online (Sandbox Code Playgroud)

AbortIfUserRequested在我的长函数中循环的每次迭代都会调用它.我也出口了UserAbortLongFunction.

我预计在调用之后不久UserAbortLongFunction,long函数会调用AbortIfUserRequested,并抛出错误.

相反,long函数一直运行到结束,然后才会UserAborted更改get 的值.

我想做的就是在用户要求时中止那个长功能!有没有办法做到这一点?

c++ matlab abort

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

如何使DB2的JDBC SQLExceptions更具描述性?

如何使DB2 JDBC驱动程序抛出的SQLExceptions更具描述性?

目前我得到了这种例外.使用这些神秘的SQLCODE和SQLSTATE数值非常麻烦.有没有办法让SQL异常包含代码描述.

Caused by: com.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: -302, 
     SQLSTATE: 22001, SQLERRMC: null
      at com.ibm.db2.jcc.b.hh.c(hh.java:1662)
      at com.ibm.db2.jcc.b.hh.a(hh.java:1238)
      at com.ibm.db2.jcc.c.db.n(db.java:737) 
      ....
Run Code Online (Sandbox Code Playgroud)

例如,SQLSTATE 22001有这样的描述:

字符数据,右截断发生; 例如,更新或插入值是对于列太长的字符串,或者无法将日期时间值分配给主变量,因为它太小.

编辑:我也使用Spring和Hibernate框架.

java db2 error-handling spring jdbc

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

Java - TreeSet和hashCode()

我有一个关于TreeSet集合和hashCode方法的快速问题.我有一个TreeSet并且我正在添加对象,在添加对象之前,我检查它是否存在于TreeSet使用该contains方法中.

我有2个不同的对象,每个对象使用我的hashCode方法实现产生一个不同的hashCode,例如:

public int hashCode()
{
    int hash = 7;
    hash = hash * 31 + anAttribute.hashCode();
    hash = hash * 31 + anotherAttribute.hashCode();
    hash = hash * 31 + yetAnotherAttribute.hashCode();
    return hash;
}
Run Code Online (Sandbox Code Playgroud)

特定运行的hashCodes是:76126352和76126353(对象在一个属性中仅相差一位).

即使hashCodes不同,contains方法也会为这些对象返回true.有什么想法吗?这真的令人困惑,真的很感激帮助.

java hashcode treeset

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

英特尔检查器报告我的螺旋锁实现中的数据竞争

我使用Windows中的Interlocked函数制作了一个非常简单的自旋锁,并在双核CPU上测试它(两个线程增加一个变量);

该程序似乎工作正常(它每次都给出相同的结果,但不使用同步时不是这种情况),但英特尔Parallel Inspector表示存在值+ = j的竞争条件(参见下面的代码).使用Critical Sections而不是SpinLock时,警告消失.

我的SpinLock实现是否正确?这真的很奇怪,因为所有使用的操作都是原子操作并且具有适当的内存屏障,并且不应该导致竞争条件.

class SpinLock
{
   int *lockValue;
   SpinLock(int *value) : lockValue(value) { }

   void Lock() {
      while(InterlockedCompareExchange((volatile LONG*)lockValue, 1, 0) != 0) {
          WaitABit();
      }
   }

   void Unlock() { InterlockedExchange((volatile LONG*)lockValue, 0); }
};
Run Code Online (Sandbox Code Playgroud)

测试程序:

static const int THREADS = 2;
HANDLE completedEvents[THREADS];
int value = 0;
int lock = 0; // Global.

DWORD WINAPI TestThread(void *param) {
    HANDLE completed = (HANDLE)param;
    SpinLock testLock(&lock);

    for(int i = 0;i < 1000*20; i++) …
Run Code Online (Sandbox Code Playgroud)

c++ winapi synchronization spinlock intel-inspector

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