问题列表 - 第38514页

OCaml中的显式var类型

如果我有一个类型t

type t = C of string;;

并且想要明确定义变量的类型为t:

let b : t = C 'MyString';;

我可以在OCaml中做到吗?

ocaml

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

在OpenGL中绘制大量像素

我一直在研究一些声音处理代码,现在我正在做一些可视化.我完成了谱图光谱图,但我如何绘制它太慢了.

我正在使用OpenGL进行2D绘图,这使得搜索帮助变得更加困难.我也是OpenGL的新手,所以我不知道事情的标准方式.

我将每个像素的r,g,b值存储在一个大矩阵中.每次我得到一个小的声音片段,我处理它并将其转换为像素列.一切都转移到左边1像素,新线放在最后.

每次重绘时,我都会循环设置颜色并单独绘制每个像素,这似乎是一种非常低效的方法.

有一个更好的方法吗?是否有一些方法可以简单地移动一堆像素?

c++ opengl graphics

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

您最有用的自定义ASP.NET MVC 2.0验证属性是什么

您使用的自定义ASP.NET MVC模型验证属性是什么.似乎有很多可能性(邮政编码,电子邮件地址,过去的日期等),但我没有找到任何好的来源,这些是共享的.我将使用以下内容开始列表:

ASP.NET MVC 3信用卡验证器

c# validation asp.net-mvc

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

Makefile编译多次相同的源

**问题编辑**

这是一个典型的Makefile模板:

TARGET   = my_prog               # project name

CC       = gcc -o
CFLAGS   = -Wall
SOURCES  := $(wildcard *.c)
INCLUDES := $(wildcard *.h)
OBJECTS  := $(SOURCES:.c=*.o)
rm       = rm -f

$(TARGET): $(OBJECTS)
    @$(CC) $(TARGET) $(CFLAGS) $(SOURCES)
    @echo "Compilation complete!"

clean:
    @$(rm) $(TARGET) $(OBJECTS)
    @echo "Cleanup complete!"
Run Code Online (Sandbox Code Playgroud)

问题:为什么线路11(@S(CC) $(TARGET) ...)在呼叫时仍然回响make

答:因为问题在默认规则中,第11行很好.

**更新**

我现在有这个 Makefile

# project name
TARGET   = my_prog

CC       = gcc -c
CFLAGS   = -Wall -I.
LINKER …
Run Code Online (Sandbox Code Playgroud)

makefile

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

为什么在C++中有从指针到bool的隐式类型转换?

考虑foo具有两个这样定义的构造函数的类:

class foo
{
public:
    foo(const std::string& filename) {std::cout << "ctor 1" << std::endl;}
    foo(const bool some_flag = false) {std::cout << "ctor 2" << std::endl;}
};
Run Code Online (Sandbox Code Playgroud)

使用字符串文字实例化类,并猜测调用哪个构造函数?

foo a ("/path/to/file");
Run Code Online (Sandbox Code Playgroud)

输出:

ctor 2

我不了解你,但我没有发现编程历史中最直观的行为.我打赌它有一些聪明的理由,但我想知道它可能是什么?

c++ types boolean implicit

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

触发插入,更新,删除

我想在主表"Table1"中进行插入,更新或删除时将行插入到审计表中 - 无论哪个列被更改/插入都无关紧要.我还想在插入,更新或删除时添加I,U或D. 对于插入和删除,我正在检查inserted和deleted表中是否存在行.什么是接近更新的最佳方式.

我的插入和删除代码是:

CREATE TRIGGER [dbo].[tr_Table1_InsertUpdate_Table1History_Insert]
ON [dbo].[Table1]
FOR INSERT, DELETE, UPDATE

AS
BEGIN
 IF EXISTS(SELECT * FROM Inserted)
 BEGIN
  INSERT INTO Table1History(...., ModificationType)
  SELECT ..., 'I'
  FROM Inserted
 END


 IF EXISTS(SELECT * FROM Deleted)
 BEGIN
  INSERT INTO Table1History(..., ModificationType)
  SELECT ..., 'D'
  FROM Deleted
 END

END
GO
Run Code Online (Sandbox Code Playgroud)

请帮忙!

sql-server audit triggers

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

scala语言中的cond方案

scala是否与scheme的cond相当?

scala

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

使用jquery捕获用户离开页面

我想实现一项功能,即如果用户离开页面并且页面上有未保存的更改,则会收到警报.因此,我需要捕获从页面触发移动的事件并对其执行自定义操作.希望用jquery做到这一点.有小费吗?

jquery

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

无法打开源文件"d3dx10.h"

我需要知道如何让VS2010识别出产生错误的directx文件(参见问题标题).

我很确定我需要添加一行:"C:\ Program Files(x86)\ Microsoft Directx SDK(2010年6月)\包括

但我不完全确定如何在2010年这样做,所以有人可以帮我吗?

visual-studio-2010

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

C++:对抗多态性开销

我知道多态可以增加明显的开销.调用虚函数比调用非虚函数要慢.(我的所有经验都是关于GCC的,但我认为/听说过任何真正的编译器都是如此.)

很多时候,一个给定的虚函数被反复调用同一个对象; 我知道对象类型不会改变,并且大多数时候编译器可以很容易地推断出对象类型:

BaseType &obj = ...;
while( looping )
    obj.f(); // BaseType::f is virtual
Run Code Online (Sandbox Code Playgroud)

为了加快代码,我可以像这样重写上面的代码:

BaseType &obj = ...;
FinalType &fo = dynamic_cast< FinalType& >( obj );
while( looping )
    fo.f(); // FinalType::f is not virtual
Run Code Online (Sandbox Code Playgroud)

我想知道在这些情况下由于多态性而避免这种开销的最佳方法是什么.

高级构建的想法(如第二个片段所示)对我来说看起来并不好:BaseType可以被许多类继承,并且尝试向上转换为所有这些将是非常冗长的.

另一个想法可能是存储obj.f在一个函数指针(没有测试这个,不确定它会杀死运行时开销),但再次这个方法看起来并不完美:如上面的方法,它需要写更多代码,它将无法利用一些优化(例如:如果FinalType::f是一个内联函数,它不会被内联 - 但我想避免这种情况的唯一方法是向上obj转换为其最终类型.. .)

那么,还有更好的方法吗?

编辑: 嗯,当然这不会影响那么多.这个问题主要是要知道是否有事可做,因为看起来这个开销是免费的(这个开销看起来很容易被杀)我不明白为什么不这样做.

一个简单的关键字,用于小优化,如C99 restrict,告诉编译器一个固定类型的多态对象是我所希望的.

无论如何,只是回答评论,存在一点开销.看看这个特殊的极端代码:

struct Base { virtual void f(){} };
struct Final : public Base { void f(){} };

int main( ) { …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism optimization virtual-functions

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