问题列表 - 第38353页

为什么 C++ 对具有负值的枚举发出警告?

我当前的代码类似于:

enum Enum1 : signed __int8
{
    Value1 = 1 ,
    Value2 = 2 ,
    Value3 = -3  // C4341
} ;
Run Code Online (Sandbox Code Playgroud)

错误详细信息状态:
“警告 C4341:'Value3':有符号值超出枚举常量范围”

MSDN指出,仅当您使用 int 范围之外的值时才会出现此警告:
(> 2^31) OR (< 1 - 2^31)

为什么它告诉我我的负值无效?这只是一个警告,但谷歌告诉我,这个警告表明这些枚举值将是未定义的 - 这将破坏我的程序。

c++ enums warnings compiler-warnings visual-c++

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

睡衣框架意义重大

我正在学习python的pajamas框架来生成前端,它基本上是由Pajamas生成的javascript代码.虽然,作为一个新概念和python中的GWT等价物,我有兴趣学习它,但我不能真正找出它的实际意义是什么?我的意思是我们在python中编码,编译代码并生成javascript,这允许我们将CSS类与代码放在一起.所以,基本上它也不会消除设计师的需要.

另外,与Django一起使用睡衣是个好主意吗?

请建议.

提前致谢

python pyjamas

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

python中的点积

这个Python代码实际上是否找到了两个向量的点积?

import operator

vector1 = (2,3,5)
vector2 = (3,4,6)
dotProduct = reduce( operator.add, map( operator.mul, vector1, vector2))
Run Code Online (Sandbox Code Playgroud)

python dot-product

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

如何使用Django获取主机服务器的名称?

如何使用Django获取主机服务器的名称?

我需要托管服务器的名称而不是客户端名称?

python django url host

48
推荐指数
5
解决办法
4万
查看次数

歧义解决方案

void S(){}
struct S{};

int main(){
   S();
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,main中的表达式'S()'被视为函数调用表达式,而不是尝试创建类型为'S'的临时表达式.

C++标准的哪一部分讨论了这种表达式的解决方案,以支持函数声明?由于某种原因,我无法找到它.

c++ declaration function object ambiguity

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

C#应该有一个forone结构吗?(或者处理零或一个案件的最简洁方法是什么)

当处理一个包含none,一个或多个项的枚举时,foreach循环可以很容易地迭代它们,LINQ Select可以很容易地从枚举项目中项目.

        foreach (var attr in p.GetCustomAttributes().OfType<A>()) ...
Run Code Online (Sandbox Code Playgroud)

当处理包含none或只有一个项目的枚举时,事情会有点棘手.您可以使用相同的foreach循环,但不能确保只存在其中一个项目,并且它可能会执行多次.

您可以添加.Take(1)以清楚地表明您只需要一个并确保循环仅执行一次.但如果不止一个,那就不会抛出异常.

        foreach (var attr in ...().Take(1)) ...
Run Code Online (Sandbox Code Playgroud)

您可以事先添加一个检查,以确保只有一个,或者可能是一个新的代码合同来检查,但这是相当混乱的:

        Contract.Requires(p..GetCustomAttributes().OfType<A>().Count() < 2);
        foreach (var attr in p.GetCustomAttributes().OfType<A>()) ...
Run Code Online (Sandbox Code Playgroud)

您甚至可以创建一个新的扩展方法.ZeroOrOne<T>(),它返回枚举中的第一个元素,然后如果您要求更多,则抛出异常.

        foreach (var attr in ...().ZeroOrOne()) ...
Run Code Online (Sandbox Code Playgroud)

或者你可以摆脱循环,使用.SingleOrDefault()然后测试null,这在意图方面显然是最清楚的,并确保循环执行零次或一次但是更多的代码,它不那么"声明性"而且它不是"可组合":

            var attr =  p.GetCustomAttributes().OfType<A>().SingleOrDefault();
            if (attr != null)
            {
               ...
Run Code Online (Sandbox Code Playgroud)

那么问题是:人们更喜欢上述哪种(或其他建议)?为什么? 大多数习惯于程序代码的程序员自然会更喜欢这个if语句,但对于那些深入到函数式编程的人来说,你有更好的方法吗?

其他一些语言有清晰的技术来处理这个问题,例如F#的数组模式可以匹配零个,一个或多个,或者失败.是否存在foroneC#语言中的构造的情况,它等同于检查枚举中是否有零或一个然后执行它?

[这里的具体示例是获取自定义属性,其中属性已被标记为不允许多个,但问题更一般地是关于处理零/一个案例.]

c# ienumerable language-features

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

如何在通过JavaScript上传之前上传预览图像

我想在将图像上传到服务器之前预览图像.我为它编写了一些代码,但由于某些安全原因,它只是在Internet Explorer中预览,而不是在Safari,Chrome,Firefox等其他浏览器中预览.有没有解决方案在这些浏览器中预览图像?

    <body>
       <form name="Upload" enctype="multipart/form-data" method="post">
           Filename: <INPUT type="file" id="submit">
           <INPUT type="button" id="send" value="Upload">
       </form>
       <div 
           id="div" 
           align="center" 
           style="height: 200px;width: 500px;border-style: ridge;border-color: red">
       </div>
    </body>

    <script type="text/javascript">
        var img_id=0
        var image = new Array()
        document.getElementById('send').onclick=function()
        {
            img_id++
            var id="imgid"+img_id
            image = document.getElementById('submit').value;
            document.getElementById('div').innerHTML="<img id='"+id+"' src='"+image+"' width=500px height=200px>"
        }
    </script>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript

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

如何使用正则表达式替换字符串中的最后一个点?

我正在尝试使用正则表达式替换String中的最后一个点.

假设我有以下字符串:

String string = "hello.world.how.are.you!";
Run Code Online (Sandbox Code Playgroud)

我想用感叹号替换最后一个点,结果是:

"hello.world.how.are!you!"
Run Code Online (Sandbox Code Playgroud)

我已经尝试了使用该方法的各种表达,String.replaceAll(String, String)没有任何运气.

java regex string

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

如何使用Log4net打开/关闭日志记录

我使用Log4net记录了所有应用程序事务.有没有什么办法可以在不改变为日志记录编写的代码的情况下从公共位置禁用和启用日志记录.

log4net

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

检查数字是否为int或float

在perl中,我想检查给定变量是否保持浮点数不是.为了检查我正在使用,

my $Var = 0.02 # Floating point number

if (int($Var) != $Var) {

   # floating point number
}
Run Code Online (Sandbox Code Playgroud)

但上面的代码不适用于0.0,

我怎样才能做到这一点?

perl types

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