小编Chr*_*vic的帖子

在一个类中使用带有成员函数的通用std :: function对象

对于一个类,我想在一个map存储std::function对象中存储一些函数指针到同一个类的成员函数.但是我在这个代码的开头就失败了:

class Foo {
    public:
        void doSomething() {}
        void bindFunction() {
            // ERROR
            std::function<void(void)> f = &Foo::doSomething;
        }
};
Run Code Online (Sandbox Code Playgroud)

我收到error C2064: term does not evaluate to a function taking 0 argumentsxxcallobj一些奇怪的模板实例化的错误结合.目前我正在使用Visual Studio 2010/2011在Windows 8上工作,在使用VS10的Win 7上工作也失败了.错误必须基于我不遵循的一些奇怪的C++规则.

编辑:我使用提升.这是集成在MS编译器中的C++ 11.

c++ function-pointers function tr1 c++11

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

Docker中PHP和Apache/httpd的高级变体

我正在尝试使用Docker,并希望从本地MAMP堆栈转移到Docker.当然我偶然发现了官方php:7.0图片,但我也想使用Apache,所以看起来好像php:7.0-apache是要走的路.不过我看到有一个名为图像php:7.0-alpine,同时有两个版本的Apache以及即是更苗条httpd:2.4httpd:2.4-alpine.

是否有任何建议的组合使用Apache和PHP(分离或组合),同时仍然具有小图像大小?此外,我想知道在哪里可以查看图像中的可用模块,因为我想要使用MariaDB和mod_rewrite,这可能有更多的依赖项,为了保持较小的尺寸而省略.


有关使用nginx实现所需基础架构的信息

我遇到了这个非常详细和令人敬畏的教程,关于如何将nginx和PHP以及MySQL分成不同的容器,但是使用FCGI将PHP附加到nginx.这意味着我可以使用工具的所有不同的基于阿尔卑斯的图像并使用FCGI链接它们.不幸的是,我从未听说过或曾与FCGI合作,但我想更多的研究将会产生有关如何使用Apache实现此基础架构的信息.

php apache docker alpine-linux

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

HTTP验证通过PHP - PHP_AUTH_USER未设置?

我试图通过http实现一个小的身份验证,并从网上复制这段代码,以检查这是否可以正常工作:

<?php
    if(!isset($_SERVER['PHP_AUTH_USER'])) {
        header('WWW-Authenticate: Basic realm="My Realm"');
        header('HTTP/1.0 401 Unauthorized');
        echo 'Text to send if user hits Cancel button';
        exit;
    } else {
        echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
        echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
    }
?>
Run Code Online (Sandbox Code Playgroud)

但是,我的浏览器总是要求输入用户名和密码,但在我取消之前从不输出任何内容.因此,我认为$_SERVER['PHP_AUTH_USER']永远不会设置!可能是什么问题?我正在运行Ubuntu 10.04 LTS服务器Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7d DAV/2 Server.

php authentication server-variables http

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

类和子类中的C++成员函数指针

我有一个基类,它包含一个map像这样的函数指针

typedef void (BaseClass::*event_t)();
class BaseClass {
    protected:
        std::map<std::string, event_t> events;
    public:
        // Example event
        void onFoo() {
            // can be added easily to the map
        }
};
Run Code Online (Sandbox Code Playgroud)

处理这个工作是完美的,但现在我想创建BaseClass一个抽象基类来源像这样:

 class SpecificClass : public BaseClass {
     public:
         void onBar() {
             // this is gonna be difficult!
         }
 };
Run Code Online (Sandbox Code Playgroud)

虽然我可以访问SpecificClass我无法添加的地图,onBar因为该event_t类型仅定义为BaseClass!有没有可能(可能有模板?)不会导致为event_t我将使用的每个类定义...

(使用模板不是必需的!任何好的/合适的方法都会很好.)

更多背景资料:

这一切都是基于文本的RPG.可以调用我的基类,并且可以指定Location任何位置,例如CivicCenter.每个Location对象都订阅了我EventSystem,当我触发一个事件时,它会通知所有必要的对象.因此,我想在地图中存储一些指向私有函数的指针,这些函数以" onSetOnFirexD"作为键的"名称"来保存动作.

c++ inheritance templates function-pointers

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

Qt 5 dark Fusion主题适用于Windows吗?

经过一些研究后我发现,Qt 5现在提供了一个所谓的Fusion主题,这个主题在他们的一篇博文中被描述.我真的很喜欢你在上一张图片中可以看到的黑色配置的主题,我想在我的应用程序中使用它,但似乎这个配色方案是由Unity/Gnome3(看起来像一个Ubuntu窗口)强制所以我是渴望知道是否有任何可用的样式表或变通方法将这个黑暗版本的主题应用于应用程序.

qt themes stylesheet qt5

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

使用依赖于 tRCP 的测试库测试 Next.js 中的组件

我正在尝试 tRCP,并认真遵循此处官方文档中描述的 Next.js 项目的设置: https: //trpc.io/docs/nextjs

然而我注意到有一个依赖 tRPC 的简单组件,比如这样

export const Sample = () => {
  const { data } = trpc.useQuery(['hello', { text: 'User' }]);
  if (data === undefined) {
    return <div>Loading...</div>;
  }
  return <div>{data.greeting}</div>;
};
Run Code Online (Sandbox Code Playgroud)

由于以下琐碎测试而无法正确测试

describe('Sample', () => {
  it('should render successfully', () => {
    const { baseElement } = render(<Sample />);
    expect(baseElement).toBeTruthy();
  });
});
Run Code Online (Sandbox Code Playgroud)

因为没有提供程序的设置,例如withTRCP用于应用程序本身的 HOC 的设置。因此,测试失败了client(大概是trcpClient,与queryClient)未定义。

我想知道如何正确设置测试,在这种情况下提供正确的客户端,以及模拟查询,因为我在调用测试时没有运行相应的服务器端代码。

reactjs next.js react-testing-library trpc.io

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

Windows下使用C/C++的虚拟文件系统

我目前正在开发一个模拟操作系统的游戏.因此我需要一个游戏文件系统.目前,我使用zziplib能够从zip存档加载文件,但是这是一个只读"文件系统",我需要一种方法来编写新文件并在之后序列化它们(并在下次执行时反序列化它们)!在野外是否有任何有用的库可供使用,还是我应该根据任何一个为自己编写一个?

c++ filesystems zip virtualfilesystem

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

WinAPICodePack中的TaskDialog在.NET 4.0上不起作用

我正在编写一个应用程序,并希望使用该TaskDialogIndirect函数 - 但是我不想写大量的P/Invoke等等,所以我已经包含了WinAPICodePack.但是有一个问题!当我为TaskDialog它创建一个控件并将其添加到对话框时,一切正常.但是,运行Show方法会导致OverflowExceptionmscorlib.我将其跟踪到一些指针处理和编组.

尝试使用代码得到了结果,我发现,必须为.NET 3.5和包含应用程序TOO编译DLL .在.NET 4.0上安装我的应用程序会调用此错误...有关解决方法的任何想法 - 或者您甚至可以重现此错误?

另一个问题是我可以将Icon属性设置为我想要的,但图标根本不显示.我必须设置一个Opened动态设置图标的事件......

信息:在Windows 8 Pro x64 RTM上运行Visual Studio 2012 RTM.应用程序是标准的WPF应用程序.

示例代码:

TaskDialog td = new TaskDialog();
td.Cancelable = true;
td.Caption = "Caption";
td.InstructionText = "Instructions";
td.Text = "Text";

TaskDialogCommandLink buttonElevation =
    new TaskDialogCommandLink("elevation", "Elevation Required Sample");
buttonElevation.UseElevationIcon = true;

td.Controls.Add(buttonElevation);
td.Show(); // OverflowException occurs here!
Run Code Online (Sandbox Code Playgroud)

.net winapi marshalling overflowexception windows-api-code-pack

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

System.Numerics 的矩阵乘法值完全错误

尽管System.Numerics.Vectors可以通过 NuGet 获得的库有自己的视图和投影矩阵函数,但我想自己实现它并只使用向量和矩阵结构。

不幸的是,当我的目标向量与(正确的)视图矩阵相乘时,我已经得到了完全错误的结果。我正在使用右手坐标系和以下说明

var cameraVector4 = new Vector4(0, 4, 2, 1);
var focusVector4 = new Vector4(0, 0, 0, 1);
var vMatrix4 = LookAt(cameraVector4, focusVector4, new Vector4(0, 1.0f, 0, 0));
var targetVector4 = new Vector4(1, 0, -1, 1);
var targetViewVector4 = Vector4.Transform(targetVector4, vMatrix4);
Run Code Online (Sandbox Code Playgroud)

具有以下功能

private static Matrix4x4 LookAt(Vector4 cameraVector4, Vector4 focusVector4, Vector4 upVector4) {
    if (cameraVector4 == focusVector4) return Matrix4x4.Identity;
    var z = Vector4.Normalize(cameraVector4 - focusVector4);
    var x = Vector4.Normalize(upVector4.Cross(z));
    var y = Vector4.Normalize(z.Cross(x));

    return new Matrix4x4(
        x.X, …
Run Code Online (Sandbox Code Playgroud)

c# matrix numerics system.numerics

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

解密XOR加密文件会过早中止

使用一个简单的函子调用 Encryptor

struct Encryptor {
    char m_bKey;
    Encryptor(char bKey) : m_bKey(bKey) {}
    char operator()(char bInput) {
        return bInput ^ m_bKey++;
    }
};
Run Code Online (Sandbox Code Playgroud)

我可以轻松地加密给定文件

std::ifstream input("in.plain.txt", std::ios::binary);
std::ofstream output("out.encrypted.txt", std::ios::binary);
std::transform(
    std::istreambuf_iterator<char>(input),
    std::istreambuf_iterator<char>(),
    std::ostreambuf_iterator<char>(output),
    Encryptor(0x2a));
Run Code Online (Sandbox Code Playgroud)

但试图通过调用来恢复它

std::ifstream input2("out.encrypted.txt", std::ios::binary);
std::ofstream output2("out.decrypted.txt", std::ios::binary);
std::transform(
    std::istreambuf_iterator<char>(input2),
    std::istreambuf_iterator<char>(),
    std::ostreambuf_iterator<char>(output2),
    Encryptor(0x2a));
Run Code Online (Sandbox Code Playgroud)

只做部分工作 以下是文件大小:

in.plain.txt:      7,700 bytes
out.encrypted.txt: 7,700 bytes
out.decrypted.txt: 4,096 bytes
Run Code Online (Sandbox Code Playgroud)

在这种情况下,似乎该方法仅适用于第一个2**12字节,可能只适用于它的倍数(它可能是我的文件系统的块大小?).为什么我有这种行为以及解决方法是什么?

c++ encryption stl file stream

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