小编Dan*_*Dan的帖子

在运行时更改数据集连接字符串

我有ac生成的数据集.如何更改连接字符串,以便将数据集与另一个(结构相同但填充程度不同的)数据库一起使用?这必须在运行时发生,因为我不知道编译时的服务器或数据库名称.我正在使用c#2.0.

c# connection-string runtime dataset

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

使用css旋转图像

我想通过相隔90度的四个方向在网页上旋转图像.我更喜欢这种情况发生在客户端机器上.这可以用css完成吗?或者我需要使用javascript吗?

感谢您的时间.

css image rotation

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

为.NET程序提供输出类型的Windows应用程序和控制台应用程序

我有一个具有gui的C#应用​​程序,其输出类型设置为Windows应用程序.我还想从命令行调用它(通过参数),因此它也需要是一个控制台应用程序.有没有办法让我的应用程序作为Windows应用程序和控制台应用程序运行?有没有办法在运行时设置它或是编译时设置?

.net windows console-application

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

算法中的数学符号

我目前正在阅读算法设计手册,但我的数学符号已经变得有点生疏了.

是什么

意思?

algorithm math notation

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

将remove_if转换为remove_not_if

如何反转谓词的返回值,并删除返回false而不是true的元素?

这是我的代码:

headerList.remove_if(FindName(name));
Run Code Online (Sandbox Code Playgroud)

(请忽略缺少擦除)

使用FindName一个简单的仿函数:

struct FindName
{
    CString m_NameToFind;

    FindInspectionNames(const CString &nameToFind)
    {
        m_NameToFind = nameToFind;
    }

    bool operator()(const CHeader &header)
    {
        if(header.Name == m_NameToFind)
        {
            return true;
        }

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

我想要像:

list.remove_if(FindName(name) == false);
Run Code Online (Sandbox Code Playgroud)

还没有使用c ++ 0x,所以不允许使用lambdas.我希望有一个比编写NotFindName仿函数更好的解决方案.

c++ stl predicates remove-if

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

基于编译时常量禁用/隐藏模板中的函数

是否可以使用编译时常量有条件地隐藏或禁用模板类中的函数?

想象一下以下课程:

template<size_t M, size_t N>
class MyClassT
{
    // I only want this function available if M == N, otherwise it is illegal to call
    static MyClassT<M, N> SomeFunc()
    {
        ...
    }
}


MyClassT<2,2>::SomeFunc(); // Fine
MyClassT<3,2>::SomeFunc(); // Shouldn't even compile
Run Code Online (Sandbox Code Playgroud)

c++ templates

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

将模板化函数限制为基类和派生类型?

我有一个这样的模板基类:

template<typename T, std::size_t Size>
class VectorT
{
public:
    typedef T data_type;
}
Run Code Online (Sandbox Code Playgroud)

以及一些专门的派生类:

template<typename T>
class Vector2d : public VectorT<T, 2U>
{ // some specialised functions }

template<typename T>
class Vector3d : public VectorT<T, 3U>
{  // some other specialised functions }
Run Code Online (Sandbox Code Playgroud)

这些工作正常.但是,我为运营商提供了一些独立的功能.例如:

template<typename T, size_t Size>
VectorT<T, Size> operator*(T lhs, const VectorT<T, Size>& rhs)
{
    ... 
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这些对我的派生类不起作用,因为它们返回的是a VectorT<T, Size>而不是a Vector2d<T>.

所以我尝试了

template<V>
V operator*(typename V::data_type lhs, const V& rhs)
{
    ... 
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但它可能会导致歧义,因为它与data_type成员相混淆.

我怎样才能解决这个问题:如何编写仅适用于我的矢量库或任何衍生物的类型安全函数?

我试图绕过必须重新声明并重新定义子类的运算符.

c++ templates

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

级联删除导致多个级联路径

我正在使用SQlServer 2008,下面显示了一些数据表的摘录:

用户

Id(PK)

UserItems

UserId(PK)ItemId(PK) - (2列的复合键)...

UserItemVotes

UserId(PK)ItemId(PK)VoterId(PK) - (3列的复合键)

我定义了以下关系:

  • User.Id - > UserItems.UserId
  • (UserItems.UserId,UserItems.ItemId) - >(UserItemVotes.UserId,UserItemVotes.ItemId)
  • UserId.Id - > UserItemVotes.VoterId

现在,我在打开级联删除时遇到问题.添加第三个关系时,我收到错误"...可能导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束." 我真的不想这样做,理想情况下,如果用户被删除,我想删除他们的用户项和/或他们的投票.

这是一个糟糕的设计吗?或者有没有办法从SQL Server获得我想要的行为?

sql-server database-design

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

广泛到狭窄的人物

将std :: wstring转换为std :: string的最简洁方法是什么?我过去曾使用过W2A等宏,但我从未喜欢它们.

c++ windows string stl

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

一旦引用计数达到0,就让shared_ptr调用成员函数

我正在为一个不能与DuplicateHandle一起使用的HANDLE创建一个包装器,所以我试图将句柄包装在shared_ptr中.

想象一下以下代码:

class CWrapper
{
public:
    CWrapper() :
        m_pHandle(new HANDLE, &CWrapper::Close)
    {
        //code to open handle
    }

private:
    void Close() 
    { 
        //code to close handle
    }

    std::shared_ptr<HANDLE> m_pHandle;
}
Run Code Online (Sandbox Code Playgroud)

我也尝试使用HANDLE参数创建close(不理想).无论哪种方式,我得到编译器错误"术语不评估为采用0参数的函数".这是因为隐含的这个指针吗?我该如何解决?如何从共享指针调用成员函数?

c++ raii shared-ptr

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