小编jot*_*tik的帖子

如何让OData DELETE工作?

我已经创建了一个OData服务(WCF数据服务)和一个用户来测试它.

以前,当我尝试删除时,我收到了WebDAV 405错误消息"Method Not Allowed".

所以我用Google搜索并发现:

http://nikhilthaker86.wordpress.com/2010/03/27/issue-hosting-restful-services-on-iis-7/

我按照说明从IIS 7中的网站(服务)中删除了WebDav模块.

现在我收到此错误消息:

"HTTP错误500.21 - 内部服务器错误

处理程序"WebDAV"在其模块列表中有一个错误的模块"WebDAVModule"

模块:IIS Web核心通知:ExecuteRequestHandler"

如果你有一个解决方案会让这个问题消失,我会非常感激...否则,如果你是一个IIS大师,而你在想"这家伙不知道他在做什么",请指点我在一些有用的在线阅读材料的方向.

提前致谢.

c# asp.net iis-7 wcf-data-services odata

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

C/C++联合中元素的内存位置

我在C中有一个这样的联盟:

union AUnion {
  struct CharBuf {
    char *buf;
    size_t len;
  } charbuf;
  uint8_t num;
  double fp_num;
};
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果给出以下内容,我可以保证:

union AUnion u;
Run Code Online (Sandbox Code Playgroud)

那么以下是真的:

&u == &u.num
&u == &u.fp_num
&u == &u.charbuf
Run Code Online (Sandbox Code Playgroud)

即它们都从u存储的内存段的开头开始.

在编译这个C程序的情况下,gcc version 5.3.0-std=c11上述是真实的:

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>

union AUnion {
    struct CharBuf {
        char *buf;
        size_t len;
    } charbuf;
    uint8_t num;
    double fp_num;
};

int main(void)
{
    union AUnion u;
    printf("%d\n", ((void*)&u) == ((void*)&u.charbuf));
    printf("%d\n", ((void*)&u.charbuf) == ((void*)&u.num));
    printf("%d\n", …
Run Code Online (Sandbox Code Playgroud)

c c++ unions c++11 c11

15
推荐指数
2
解决办法
1380
查看次数

编译器是否可以删除以下副本?

我仍然是一名新手程序员,我知道过早的优化很糟糕,但我也知道复制大量的东西也很糟糕.

我已经阅读了复制省略和它的同义词,但维基百科上的例子让我觉得复制省略只有在要完全构建的同时返回要返回的对象时才会发生.

那些像矢量这样的对象呢?当用作返回值时,它通常只在填充某些东西时才有意义.毕竟,可以手动实例化空矢量.

那么,它是否也适用于这样的情况?

简洁的风格:

vector<foo> bar(string baz)
{
    vector<foo> out;
    for (each letter in baz)
        out.push_back(someTable[letter]);

    return out;
}

int main()
{
     vector<foo> oof = bar("Hello World");
}
Run Code Online (Sandbox Code Playgroud)

我使用bar(矢量和输出,字符串文本)没有真正的麻烦,但上面的方式看起来更好,美观,并且意图.

c++ copy-elision

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

NULL宏或NULL const

我目前正在阅读一本关于C++的书,在本书中,作者解释说使用常量而不是NULL宏更好,但没有真正解释为什么或给出任何优点或缺点.

那么为什么最好使用:

const int NULL = 0;
int *ptr = NULL;
Run Code Online (Sandbox Code Playgroud)

代替:

int *ptr = NULL;
Run Code Online (Sandbox Code Playgroud)

唯一的解释是NULL宏不是类型安全的.

c++ null-pointer

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

使用卡尔曼滤波器跟踪对象的位置,但需要知道该对象的位置作为卡尔曼滤波器的输入.到底是怎么回事?

我正在尝试研究如何使用卡尔曼滤波器跟踪我自己在视频序列中移动的物体(球),所以请在我小时候向我解释.

  • 通过一些算法(颜色分析,光流......),我能够得到每个视频帧的二进制图像,其中有跟踪对象(白色像素)和背景(黑色像素) - >我知道对象大小,对象质心,对象位置 - >只需简单地在对象周围绘制一个边界框 - >完成.为什么我需要在这里使用卡尔曼滤波器?

  • 好吧,有人告诉我,因为我无法通过噪声检测每个视频帧中的物体,我需要使用卡尔曼滤波器来估计物体的位置.好的.但据我所知,我需要为卡尔曼滤波器提供输入.它们是先前的状态和测量.

    • 以前的状态(所以我认为它是前一帧中物体的位置,速度,加速度) - >好的,这对我来说没问题.
    • 当前状态的测量:这是我无法理解的.可以测量什么? - 物体在当前帧中的位置?这很有趣,因为如果我知道对象的位置,我只需要在对象周围绘制一个简单的边界框(矩形).为什么我在这里需要卡尔曼滤波器?因此,不可能将当前帧中的对象的位置作为测量值. - "视频监控系统中基于卡尔曼滤波器的跟踪"文章说

      卡尔曼滤波块的主要作用是为从光流分析块进入系统的每个测量分配跟踪滤波器.

      如果您阅读完整的论文,您将看到作者将blob的最大数量和blob的最小大小作为卡尔曼滤波器的输入.这些参数如何用作测量

我想我现在处于循环中.我想使用卡尔曼滤波器来跟踪物体的位置,但我需要知道该物体的位置作为卡尔曼滤波器的输入.到底是怎么回事?

还有一个问题,我不理解术语"卡尔曼滤波器的数量".在视频序列中,如果有2个对象需要跟踪 - >需要使用2个卡尔曼滤波器吗?这是什么意思?

image-processing object video-processing kalman-filter

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

函数声明与定义C

我有一个简单的代码,我的函数在main函数之前声明:

int function1();
int function2();

int main() {
   /* ... */
   function1(x,y);
   function2(x,y);
   /* .... */
}

int function1(int x, float y) { /* ... */ }
int function2(int x, float y) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

在我的主要功能之后,我有函数的定义:

当我在main之前声明函数时,有什么不同吗?

int function1(int x, float y);
int function2(int x, float y);

int main() {
   /* ... */
   function1(x,y);
   function2(x,y);
   /* .... */
}

int function1(int x, float y) { /* ... */ }
int function2(int x, float y) { /* ... */ …
Run Code Online (Sandbox Code Playgroud)

c prototype declaration function definition

13
推荐指数
3
解决办法
3160
查看次数

在HTML5模式输入元素属性上使用什么是安全的PCRE正则表达式分隔符?

似乎HTML5规范(以及因此ECMA262)允许<input type="text" pattern="[0-9]/[0-9]" />匹配字符串'0/0',即使正斜杠没有被转义.像Drupal这样的Web应用程序希望为不支持HTML5的浏览器提供服务器端验证,例如:

<?php
preg_match('/^(' . $pattern . ')$/', $value);
?>
Run Code Online (Sandbox Code Playgroud)

不幸的是,字符串'[0-9]/[0-9]'不是有效的PRCE正则表达式.似乎大多数(如果不是全部)支持HTML5的浏览器都支持这两者pattern="[0-9]/[0-9]" 并且 pattern="[0-9]\/[0-9]"引发了一个问题 - 我们可以使用什么作为分隔符来运行这种模式来对抗Perl风格的正则表达式?

我们已针对W3C规范提交了错误报告,但这里的浏览器是错误的吗?是否需要澄清HTML5规范?我们可以在PHP中使用解决方法吗?

php regex html5 pcre

12
推荐指数
2
解决办法
1299
查看次数

std :: throw_with_nested期望C++ 11中的多态类型?

为什么这不编译(尝试使用Clang 3.4.2和GCC版本4.7.4,4.8.3和4.9.1):

#include <exception>

struct E { E(int) {} };

int main() {
  std::throw_with_nested(E(42));
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

GCC 4.9.1的错误:

In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.1/include/g++-v4/exception:163:0,
                from test.cpp:1:
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.1/include/g++-v4/bits/nested_exception.h: In instantiation of 'static const std::nested_exception* std::__get_nested_helper<_Ex>::_S_get(const _Ex&) [with _Ex = E]':
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.1/include/g++-v4/bits/nested_exception.h:104:51:   required from 'const std::nested_exception* std::__get_nested_exception(const _Ex&) [with _Ex = E]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.1/include/g++-v4/bits/nested_exception.h:138:38:   required from 'void std::throw_with_nested(_Ex) [with _Ex = E]'
test.cpp:6:31:   required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.1/include/g++-v4/bits/nested_exception.h:90:59: error: cannot dynamic_cast '& __ex' (of type 'const struct E*') to type 'const class std::nested_exception*' (source …
Run Code Online (Sandbox Code Playgroud)

c++ exception-handling exception libstdc++ c++11

12
推荐指数
2
解决办法
531
查看次数

如何更改C++包括CLION的守卫?

当CLion创建一个头文件时,它会添加包含这样的保护字符串:

#ifndef PROJECTNAME_FILENAME_H
#define PROJECTNAME_FILENAME_H

/* ... code ... */

#endif //PROJECTNAME_FILENAME_H
Run Code Online (Sandbox Code Playgroud)

但我想要FILENAME_H没有PROJECTNAME_前缀.如何在CLION设置中更改它?

c++ include-guards clion

12
推荐指数
2
解决办法
4103
查看次数

是否允许标准库实现具有与C++标准不同的类定义?

以下代码使用clang和MSVC成功编译但无法在GCC 6.1.0中编译.

#include <memory>

template<typename R, typename T, typename... Args>
T* test(R(T::*)(Args...) const)
{
    return nullptr;
}

int main()
{
    using T = std::shared_ptr<int>;
    T* p = test(&T::get);
}
Run Code Online (Sandbox Code Playgroud)

以下错误消息

prog.cc: In function 'int main()':
prog.cc:13:16: error: invalid conversion from 'std::__shared_ptr<int, (__gnu_cxx::_Lock_policy)2u>*' to 'T* {aka std::shared_ptr<int>*}' [-fpermissive]
     T* p = test(&T::get);
            ~~~~^~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

问题是libstdc ++是std::shared_ptr通过get从基类继承成员函数实现的std::__shared_ptr.

在C++标准20.8.2.2类模板shared_ptr中,它指定了std :: shared_ptr类的类定义以及该类的所有成员函数.

我的问题是,实现是否必须至少提供标准类中标准中定义的所有公共类成员?是否允许通过继承libstdc ++中实现的基类来提供成员函数?

c++ c++-standard-library language-lawyer

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