小编Joe*_*oeG的帖子

300
推荐指数
8
解决办法
20万
查看次数

什么是'thunk'?

我已经看到它用于编程(特别是在C++领域)并且不知道它是什么.据推测它是一种设计模式,但我可能是错的.谁能举出一个很好的例子?

c++ thunk

123
推荐指数
8
解决办法
3万
查看次数

AngularJS指令限制A对E

我在一个小团队工作,在AngularJS建立并试图保持一些基本标准和最佳实践; 特别是考虑到Angular相对较新.

我的问题是关于指令.更准确地说,restrict选项.

我们有些人使用restrict: 'E'因此具有<my-directive></my-directive>在html.

其他人正在使用restrict: 'A'和拥有<div my-directive></div>html.

然后,当然,您可以使用restrict: 'EA'和使用上述任何一种.

目前这没什么大不了的,虽然当这个项目变得如此之大时,我希望任何人都能看到它,以便轻松了解正在发生的事情.

对于做事物的属性或元素方式是否有利弊?

如果选择说元素超过属性,我们应该知道任何陷阱吗?

html javascript angularjs

112
推荐指数
5
解决办法
12万
查看次数

传递C++ Lambda函数

我一直在寻找这个,我似乎无法找到一个直接的答案.一些消息来源说这是不可能的,但这只会给我带来更多问题,我将在下面进一步解释.

所以情况就是这样.假设我有一个带有如下选择函数的自定义容器类(这只是一个例子):

template <typename T>
class Container {
public:
    // ...

    Container<T> select(bool (*condition)(const T&)) const;

    // ...
};
Run Code Online (Sandbox Code Playgroud)

如您所见,该select函数采用指向条件函数的指针.这是一个定义应选择哪些项目的函数.因此,使用此示例将类似于:

bool zero_selector(const int& element) {
    return (element == 0); // Selects all elements that are zero
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我有一个容器填充,比方说s = { 1, 1, 0, 0, 1, 0, 1, 0 },我可以选择这些只包含零的子集:

t = s.select(&zero_selector); // t = { 0, 0, 0, 0 }
Run Code Online (Sandbox Code Playgroud)

如你所见,这有点笨重.Lambda函数会使这更加优雅,所以我可以使用(我不确定这是否是正确的语法),例如:

t = s.select([&] (int x) -> bool { return (x == 0); …
Run Code Online (Sandbox Code Playgroud)

c++ lambda

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

是否可以编译在所有Linux发行版中执行而无需重新编译的C/C++源代码?

是否可以编译在所有Linux发行版中执行而无需重新编译的C/C++源代码?

如果答案是肯定的,我可以使用任何外部(非标准C/C++)库吗?

我想分发我的二进制应用程序而不是分发源代码.

c c++ linux

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

我应该使用C++中的哪个包装类进行自动资源管理?

我是C++业余爱好者.我正在编写一些Win32 API代码,并且有句柄和奇怪的复合分配对象.所以我想知道 - 是否有一些包装类可以使资源管理更容易?

例如,当我想加载一些数据时,我打开一个文件CreateFile()并得到一个HANDLE.当我完成它之后,我应该呼吁CloseHandle()它.但是对于任何相当复杂的加载函数,将会有许多可能的退出点,更不用说例外了.

因此,如果我可以将句柄包装在某种类型的包装类中会很好,它会CloseHandle()在执行一次离开范围后自动调用.更好的是 - 它可以进行一些引用计数,因此我可以将其传入和传出其他函数,并且只有在最后一个引用离开范围时它才会释放资源.

这个概念很简单 - 但标准库中有类似的东西吗?顺便说一下,我正在使用Visual Studio 2008,而且我不想附加像Boost这样的第三方框架.

c++ raii resource-management

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

如何在64位项目中引用32位DLL?

我有一个C#2.0项目设置为"任何Cpu",但它引用的是一个构建32位dll的C++项目.

当我尝试在64位机器上运行我的程序时,我收到以下错误:

System.BadImageFormatException未处理消息:无法加载文件或程序集TreeTMHook, Version=1.0.2889.19619, Culture=neutral, PublicKeyToken=null 或其依赖项之一.尝试加载格式不正确的程序.

我怎样才能解决这个问题?

更新

我希望能够将主项目保持为任何cpu.

谢谢.

.net c# c++ dll visual-studio-2008

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

C++中的析构函数

析构函数是否释放分配给它所属对象的内存,或者是否只是调用它以便它可以在编译器释放对象之前执行最后一分钟的内务处理?

c++ destructor

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

C++ 11 constexpr过时的模板元编程?

据我了解,constexpr与模板元编程不同,图灵不是完整的,所以我相信这些不一样.那么问题是constexpr模板元编程在多大程度上已经过时了?

c++ templates constexpr c++11

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

_bstr_t到UTF-8可能吗?

我有一个_bstr_t包含日文文本的字符串.我想将此字符串转换为UTF-8字符串,该字符串定义为a char *.

我可以将_bstr_t字符串转换为char *(UTF-8)字符串而不会丢失日文字符吗?

c++ com atl bstr visual-c++

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