小编Ste*_*idi的帖子

为什么编译器在以下示例中没有选择我的函数模板重载?

给出以下函数模板:

#include <vector>
#include <utility>

struct Base { };
struct Derived : Base { };

// #1
template <typename T1, typename T2>
void f(const T1& a, const T2& b)
{
};

// #2
template <typename T1, typename T2>
void f(const std::vector<std::pair<T1, T2> >& v, Base* p)
{
};
Run Code Online (Sandbox Code Playgroud)

为什么以下代码总是调用#1而不是#2重载?

int main()
{
    std::vector<std::pair<int, int> > v;
    Derived derived;

    f(100, 200);  // clearly calls overload #1
    f(v, &derived);         // always calls overload #1

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

鉴于第二个参数f是派生类型Base,我希望编译器选择重载#2,因为它比重载#1中的泛型类型更好. …

c++ templates overloading function-templates overload-resolution

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

将字节位作为字符串

我想从字符串中的一个字节的位(0或一个),但我不知道如何?谢谢.

.net c# string

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

根据输入的动态二维数组

我需要从用户获得输入N并生成N*N矩阵.我该如何申报矩阵?一般来说,数组和矩阵的大小应该在声明中固定,对吧?怎么样vector<vector<int>>?我从来没有使用过这个,所以我需要老兵的建议.

c++ vector matrix multidimensional-array

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

何时使用<appSettings>部分优先于自定义配置部分?

在创建应用程序或库的配置时,我通常更喜欢在该<appSettings>部分上使用自定义配置部分,原因如下.

  • 框架序列化到用户定义的配置对象; 每个配置值都有适当的类型
  • 可以针对具有属性的类型和值范围验证配置值

鉴于此,何时我想使用该部分的松散类型<add/>键/值机制<appSettings>?我记得,本节中的应用程序级配置可以覆盖machine.config中的现有机器级配置.这是唯一的情况,还是有其他原因?

.net configuration configurationmanager appsettings custom-configuration

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

是否有.NET API来返回给定路径的等效扩展路径字符串?

在NTFS中,我可以在路径前加上\\?\字符序列,以表示它是一个超过260个字符限制的路径; 因此,文件系统将正确解释路径并避免提升PathTooLongException.

(有关更多信息,请参阅http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#maxpath)

是否有一个.NET API将我的路径字符串作为这个序列的前缀,或者我是不是自己写了?

本质上,我正在寻找一种等效于以下的方法.

static string ToExtendedPath(string path)
{
    if(Path.IsPathRooted(path))
    {
        return @"\\?\" + path;
    }

    return Path.Combine(@"\\?\", path);
}
Run Code Online (Sandbox Code Playgroud)

.net ntfs path-combine

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

如果有的话,CLR中的装箱和拆箱操作有哪些性能改进?

几个月前我参加了一个研讨会,发言人声明自从.NET 1.1以来,装箱或拆箱操作的总成本已经降低.我查看了我的(差)注释,无法确定此语句是否引用了box和unbox指令,或者引用了类(即泛型类型),使得装箱/拆箱不太可能发生.

.NET 1.1和.NET 4.0之间的CLR拳击相关指令是否有性能改进,如果是这样,我在哪里可以找到有关显示收益的测量信息?

.net c# clr boxing unboxing

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

C#Lambda Expression帮助

如果我使用如下的lambda表达式

// assume sch_id is a property of the entity Schedules
public void GetRecord(int id)
{
    _myentity.Schedules.Where(x => x.sch_id == id));
}
Run Code Online (Sandbox Code Playgroud)

我假设(虽然没有经过测试)我可以使用匿名内联函数重写它,使用类似的东西

_jve.Schedules.Where(delegate(Models.Schedules x) { return x.sch_id == id; });
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何在普通(非内联)函数中重写它并仍然传入id参数.

c# lambda

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

哪个调试工具(如果有的话)允许我识别锁定文件的线程?

我正在调试一个定期引发的测试IOException,注意到一个文件因为被另一个进程使用而无法删除.我怀疑这个过程确实是我的测试工具,并且进程中的其他一些线程在我预期时没有处理它的文件资源.

有没有一个工具可以用来确定哪个线程阻挡了阻碍锁?如果我可以识别线程,那么我可以检查它的调用堆栈,并至少尝试确定资源尚未处理的原因.该SOS调试工具看起来很有希望,但我不认为这会从我的调查中删除的猜测相当数量的任何特征.

一种想法是识别本机OS线程ID,然后可以通过SOS将其映射到托管线程ID.我将如何完成前者?

.net io file-locking sos ioexception

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

锁定关键字和应用程序重置

我有一个Web服务冻结了lock命令的死锁.

lock(typeof(MyServiceType))
Run Code Online (Sandbox Code Playgroud)

我觉得这是由应用程序池重置引起的.

应用程序池重置是否有可能导致锁定成为永久锁定?

.net c# multithreading

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

当一个结构有c-tor时,为什么我不能静态初始化它呢?

我的问题:当一个结构有c-tor时,为什么我不能静态初始化它?

我的编译器声称:

type `myStruct' must be initialized by constructor, not by `{...}'
Run Code Online (Sandbox Code Playgroud)

这是为什么 ?我正在使用gcc版本3.4.4(cygming special,gdc 0.12,使用dmd 0.125)

为了说明,这是struct编译器拒绝的.

struct myStruct
{
    int a;
    double b;

    myStruct() { a= 0; b = 0.0; }
}

void main()
{
    myStruct ms = {7, 7.7}; // Now this compiler does not accept.
} 
Run Code Online (Sandbox Code Playgroud)

c++ static constructor structure initialization

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