小编dan*_*jar的帖子

如何使这些std :: function参数明确无误?

传递lambda时,以下函数重载是不明确的.我发现std::function可以从大多数可调用类型构建,即使它们的签名不匹配.所以编译器无法分辨使用哪个函数.

template <typename T> void each(std::function<void(T)> iterator);
template <typename T> void each(std::function<void(T, id)> iterator);
template <typename T> void each(std::function<void(T&)> iterator);
template <typename T> void each(std::function<void(T&, id)> iterator);
Run Code Online (Sandbox Code Playgroud)

这里有一些类似的问题,但没有一个能解决我的问题.如何在不改变用法的情况下解决歧义?更重要的是,当时我必须明确提到模板类型.有没有解决的办法?

c++ lambda templates c++11 std-function

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

是否有跨平台的CMake命令来安装项目?

CMake带有一种跨平台的方式来编译项目cmake --build ..是否有类似的命令来安装项目?我正在寻找可以转换为make installUnix的东西,但也适用于Windows.

cmake

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

如何在 Python 中使用类装饰器混合行为?

我有一个基类,它有很多直接子类。有多个独立的特征由多个子类共享。这是 Python 合作继承的一个很好的用例。但是,这些功能应该从外部包装行为,因此它们需要位于方法解析顺序的前面。

class WrappedSub(FeatureA, FeatureB, FeatureC, RealSub):

    def __init__(self, *args, **kwargs):
        FeatureA.__init__(foo=42)
        FeatureB.__init__(bar=13)
        FeatureC.__init__(foobar=546)
        RealSub.__init__(*args, **kwargs)

class RealSub(Base):
    # Lots of code ...
Run Code Online (Sandbox Code Playgroud)

如果能装饰一下子类就好了。

@Mixin(FeatureA, 42)
@Mixin(FeatureB, 13)
@Mixin(FeatureC, 546)
class RealSub(Base):
    # Lots of code ...
Run Code Online (Sandbox Code Playgroud)

准确地说,我需要一个@Mixin装饰器,其中下面的第一个块相当于第二个块。

@Mixin(Sub, *feature_args, **feature_kwargs)
class RealSub:
    # Lots of code ...

class RealSub:
    # Lots of code ...
class WrappedSub(Feature, RealSub):
    def __init__(self, *sub_args, **sub_kwargs):
        Feature.__init__(self, *feature_args, **feature_kwargs)
        RealSub.__init__(self, *sub_args, **sub_kwargs)
RealSub = WrappedSub
Run Code Online (Sandbox Code Playgroud)

这在 Python 3 中怎么可能呢?

inheritance decorator mixins python-3.x python-decorators

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

如何将locals()中的值赋给具有相同名称的局部变量?

这有效:

def foo():
    locals().update({'bar': 12})
    print(locals()['bar'])  # 12
Run Code Online (Sandbox Code Playgroud)

这失败了:

def foo():
    locals().update({'bar': 12})
    bar = locals()['bar']  # KeyError: 'bar'
    print(bar)
Run Code Online (Sandbox Code Playgroud)

python local-variables

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

浏览器上的刷新按钮

我有一个简单的编码问题.我尝试使用文本框和共享按钮创建页面.

当用户单击共享按钮时,文本框中的文本将作为字符串插入名为"posts"的数据库表中.

我使用以下代码.

<?php
    if(isset($_POST['share']))
    {
            $status = $_POST['status'];
            $res = mysql_query("insert into `posts`(postid,username,post,pointscollected) values('','$username','$status','')");
            if($res)
                echo "<script type='text/javascript'>alert('Posted successfully')</script>";
            else
                echo "<script type='text/javascript'>alert('some error')</script>";
    }
    else
    {
        ?>
            <form action="<?php $_SERVER['PHP_SELF']?>" method="post">
            Status : <input type = "text" name ="status">
            <input type = "submit" name ="share">
            </form>
        <?php
    }
Run Code Online (Sandbox Code Playgroud)

此解决方案工作正常,但用户刷新页面时出现问题.浏览器将显示一个消息窗口,要求重新发送信息,这将再次将该帖子提交给表格.然后相同的条目在表中两次.

我希望用户在提交后保持在同一页面上.但页面刷新不应显示消息窗口或再次发送信息.

提前致谢!

html php

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

如何将类作为参数传递

在C++中有没有办法将类型(例如类)作为参数传递给函数?

解释为什么我需要这个:有一个抽象data类和一个manager类.的manager类包含一个列表(或在这种情况下,地图)的派生类的对象data.我unique_ptr这个问题的答案中提到了这一点.

class Data{}; // abstract

class Manager
{
    map<string, unique_ptr<Data>> List;
};
Run Code Online (Sandbox Code Playgroud)

现在想象一下,我想为data经理添加一个新的存储空间.

class Position : public Data
{
    int X;
    int Y;
}
Run Code Online (Sandbox Code Playgroud)

我怎么能告诉经理创建一个这种类型的对象并引用unique_ptr它呢?

Manager manager;
manager.Add("position data", Position);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我需要将类传递Positionaddmanager类的函数,因为我不想首先创建一个实例然后将其发送给管理器.

然后,我怎么能将该类的对象添加到List

我不确定在C++中是否有这样做的方法.如果不能轻易完成,我真的希望看到一个解决方法.非常感谢!

c++ parameters types class function

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

指针 - >调用()和(*指针)之间的区别.Call()

可能重复:
ptr-> hello();/*VERSUS*/(*ptr).hello();

我正在学习C++,我的问题是如果使用箭头操作符(->)或取消引用指针*来调用函数之间有任何区别.

这两个案例说明了我的问题.

Class* pointer = new Class();
(*pointer).Function();         // case one
pointer->Function();           // case two
Run Code Online (Sandbox Code Playgroud)

有什么不同?

c++ pointers function call dereference

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

使用整数键和向量的映射之间的差异

向量是带有整数键的unordered_map的特殊形式吗?看起来是这样,因为矢量也有整数键.

如果没有,有什么区别?

c++ stl key vector std

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

循环遍历布尔值

可能重复:
如何在bool值上写一个`for`循环(false和true)

我想用bool flagtrue first和false second 执行相同的任务两次.是否有一种优雅的方式(可能使用循环)?

我的想法是做类似以下的事情,但这是一个太复杂的方式.

bool flag = true;
for(int i = 0; i < 2; ++i, flag = !flag)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

c++ coding-style

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

将值为0.0f的浮点数转换为布尔值是否安全?

我知道由于精度错误,float应检查一个varibale,使其等于一个总是带有一定容差的值.但是,如果我手动将float变量设置为是0.0f什么情况呢?

例如,有一个返回距离的函数.

float distance()
{
    float value;
    if(/* ... */)
    {
        // ...
        return value;
    }
    else return 0.0f;
}
Run Code Online (Sandbox Code Playgroud)

我可以安全地将结果转换为bool吗?

if(distance())
{
   // ...
}
Run Code Online (Sandbox Code Playgroud)

c++ floating-point casting boolean floating-point-precision

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