小编Jon*_*ung的帖子

在Mac OS X上启动服务器

我正在弄清楚如何使用PHP OpenId

我已将repo克隆到~/www目录中.php-open-id/examples目录中有一些我想运行的例子.

具体来说,我想渲染页面php-open-id/examples/consumer/index.php以便更好地理解API.我在php-open-id/examples目录中启动了一个服务器

python -m SimpleHTTPServer 8000
Run Code Online (Sandbox Code Playgroud)

我导航到了 localhost://consumer/index.php

但它没有用.它显示一个用于保存文件的对话框.呈现此PHP文件的正确方法是什么?

php macos server

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

Android的新64位要求是否意味着具有本地代码的应用程序的新最低API级别为21?

考虑以下:

  • 通常,开发人员会将其设置minSdkVersion为16,因为它覆盖了99%以上的设备(1)。
  • 但是,从2019年8月1日起,Android将要求所有应用程序提供64位版本(2)。
  • 此外,NDK API级别(设置为-D__ANDROID_API__)必须等于minSdkVersion3)。
  • 最后,运行在arm64-v8a上的Android设备不支持任何低于API级别21(4)的设备。

我试图进行研究以弄清楚所有这些东西是如何工作的-直到现在我一直主要通过试图建立依赖关系以将我的C ++库移植到Android来破解自己的方式-请原谅如果我缺少明显的东西。但是在我看来,上述表明从Android NDK生成的应用必须从2019年8月1日开始将最低API级别定位为21.这是否正确?

参考文献:

android android-ndk android-api-levels

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

转到特定页面后,如何“通过引用”将SwipeView的currentIndex设置为TabBar的currentIndex?

我开始使用QtQuick Controls 2.0。我有使用C ++的经验,也有少量使用Qt的经验,但是我以前从未使用过QML。

我有一个TabBarSwipeView彼此关联的。我的意思是,当您在上选择一个页面时TabBar,将SwipeView转到该页面。当您从滑动到页面时SwipeViewTabBar更新本身会反映出来。

作为一项学习练习,我决定创建一个按钮,该按钮会将用户带到第二页。问题在于,我似乎找不到不弄乱the TabBar和the 之间的联系的方法SwipeView

以下代码是我提出的最好的代码。它正确地进入到第二页,当我改变当前页面用TabBarSwipeView还是更新。但是,滑动到新页面将不再更新TabBar。似乎在对冒号进行初始化时,设置tabBar.currentIndexswipeView.currentIndex仅具有通过引用进行设置的效果。用等号设置值。如何在保持不变的情况下移至特定页面swipeView.currentIndex == tabBar.currentIndex

// main.qml
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    SwipeView {
        id: swipeView
        anchors.fill: parent
        currentIndex: tabBar.currentIndex

        Page {
            Button {
                text: qsTr("Continue to Page 2")
                onClicked: …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qtquick2 qtquickcontrols2

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

在析构函数中保存std :: lock_guard是否安全?

我试图确定以下代码是否安全,或者是否为UB并且仅在这种情况下可以正常工作(在此处运行):

#include <iostream>
#include <mutex>

struct Foo
{
  std::mutex mutex;
  ~Foo()
  {
    std::lock_guard<std::mutex> lock(mutex);
  }
};

int main() 
{
  {
    Foo foo;
  }
  std::cout << "everything seems to work fine...?" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

具体来说,我们是否可以保证在析构函数内部定义的局部变量在成员变量之前被解构?

我从cppreference.com找到了以下内容,但似乎无法完全回答我的问题:

破坏顺序

对于用户定义或隐式定义的析构函数,在执行析构函数的主体之后,编译器将以声明的相反顺序为该类的所有非静态非变量成员调用析构函数,然后调用的析构函数。所有直接的非虚拟基类,其构造顺序相反(依次调用其成员及其基类的析构函数,等等),然后,如果此对象属于派生类最多的对象,则它将调用所有虚拟基类的析构函数基地。

c++ multithreading destructor

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

Python - 嵌套的 __repr__ 将换行符恢复为“\\n”

class MyClass:
    def __init__(self):
        self.list_ = []
    def __repr__(self):
        return '\n'.join(['this','should','all','be','on','separate','lines']) + str([str(list_val) for list_val in self.list_])

myClass = MyClass()
myClass.list_.append(MyClass())
myClass.list_[0].list_.append(MyClass())
print(myClass)
Run Code Online (Sandbox Code Playgroud)

我希望此代码打印:

this
should
all
be
on
separate
lines[this
should
all
be
on
separate
lines[this
should
all
be
on
separate
lines]]
Run Code Online (Sandbox Code Playgroud)

或类似的东西,但它打印

this
should
all
be
on
separate
lines["this\nshould\nall\nbe\non\nseparate\nlines['this\\nshould\\nall\\nbe\\non\\nseparate\\nlines[]']"]
Run Code Online (Sandbox Code Playgroud)

也就是说,当我尝试将一个对象转换为字符串时,它已经在__repr__同一个类的另一个对象的方法中,它会将换行符转换为\n,如果我进一步嵌套它,它会导致\\n,每次我嵌套它都会添加转义序列前的附加反斜杠。

阅读完这个问题后,似乎该__repr__方法认为我实际上想要两个字符\and n,但我不想要:我想要转义序列\n。有什么方法可以覆盖它并强制它将其解释为换行符而不是两个单独的字符?

python string recursion escaping repr

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

如何使用 __getattr__ 将方法委托给属性?

我有以下课程:

class MyInt:
    def __init__(self, v):
        if type(v) != int:
            raise ValueError('value must be an int')
        self.v = v

    def __getattr__(self, attr):
        return getattr(self.v, attr)

i = MyInt(0)
print(i + 1)
Run Code Online (Sandbox Code Playgroud)

我收到错误: TypeError: unsupported operand type(s) for +: 'MyInt' and 'int'

i.__add__(1)应该叫吗?__getattr__当在MyInt类中找不到这样的方法时不应该调用吗?

python composition getattr

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

如何在 C++ 中有效地将数组移动到向量?

我正在使用一个函数,该函数需要我传入一个 C 样式数组,以便它可以填充数据。但是,结果数组必须转换为向量,以便可以将其传递给另一个需要它的函数。向量约束是很难的,没有办法绕过它。我可以想象重新设计另一个函数,以便它需要一个向量,但如果它可以有效地完成,我不希望这样做。具体来说,如果可能的话,我希望不要将数据从数组复制到向量。作为一个最小的示例,请使用以下程序:

\n
#include <iostream>\n#include <algorithm>\n#include <vector>\n#include <chrono>\n\nusing namespace std::chrono;\n\nstatic uint LENGTH = 10000000;\n\n\nuint now() {\n    return duration_cast<microseconds>\n            (system_clock::now().time_since_epoch()).count();\n}\n\nvoid put_data_in_array(char *data) {\n    std::cout << now() << " filling array\\n";\n    for (uint i = 0; i < LENGTH; i++) {\n        data[i] = i;\n    }\n    std::cout << now() << " filled array\\n";\n}\n\nint main () {\n    std::cout << now() << " making array\\n";\n    char *array = new char[LENGTH];\n    std::cout << now() << " made array\\n";\n    put_data_in_array(array);\n    std::cout << now() << " function …
Run Code Online (Sandbox Code Playgroud)

c++ performance vector c++11

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

是否可以在C++中使用模板化的单参数求和函数?

在python中,我们可以这样做:

int_list = [1, 2, 3, 4, 5]
print(sum(int_list)) # prints 15
float_tuple = (1.2, 3.4, 9.9)
print(sum(float_tuple)) # prints 14.5
Run Code Online (Sandbox Code Playgroud)

sum函数接受任何可迭代的元素,这些元素知道如何相互添加并且为0并生成总和.

我想在C++ 11中创建一个相同的函数.我知道存在accumulate方法,但我想要一个带有单个参数的函数.基本上,我想知道如何编译以下代码:

#include <string>
#include <iostream>
#include <vector>
#include <deque>
#include <list>

template<typename iterable>
auto sum(iterable iterable_) {
    auto it = iterable_.begin();
    auto end = iterable_.end();
    if (it == end) {
        return 0;
    }
    auto res = *(it++); 
    while (it != end) {
        res += *it++;
    }
    return res;
}

int main() {
    std::vector<int> …
Run Code Online (Sandbox Code Playgroud)

c++ templates sum generic-programming

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

如何在Java中创建一个泛型类但限制可以使用的类型?

我想要一个Fraction类,我可以使用它来封装有关分数的数据和逻辑,但我想让用户选择他们想要使用的大小整数.不幸的是,没有通用的超类仅涵盖这些类:BigInteger, Long, Integer, Short

我会使用Number,但我不想允许非整数,如浮点数或小数.

我可以这样做吗?

import java.math.BigInteger;

public class Fraction<T> {

    private T numerator;
    private T denominator;

    Fraction(T numerator, T denominator) {
        if (!(T == BigInteger.class || T == Long.class || T == Integer.class || T == Short.class)) {
            throw new Exception();
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

我目前得到的错误是 T cannot be resolved to a variable

java generics

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