我正在弄清楚如何使用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文件的正确方法是什么?
考虑以下:
minSdkVersion为16,因为它覆盖了99%以上的设备(1)。-D__ANDROID_API__)必须等于minSdkVersion(3)。我试图进行研究以弄清楚所有这些东西是如何工作的-直到现在我一直主要通过试图建立依赖关系以将我的C ++库移植到Android来破解自己的方式-请原谅如果我缺少明显的东西。但是在我看来,上述表明从Android NDK生成的应用必须从2019年8月1日开始将最低API级别定位为21.这是否正确?
参考文献:
我开始使用QtQuick Controls 2.0。我有使用C ++的经验,也有少量使用Qt的经验,但是我以前从未使用过QML。
我有一个TabBar和SwipeView彼此关联的。我的意思是,当您在上选择一个页面时TabBar,将SwipeView转到该页面。当您从滑动到页面时SwipeView,TabBar更新本身会反映出来。
作为一项学习练习,我决定创建一个按钮,该按钮会将用户带到第二页。问题在于,我似乎找不到不弄乱the TabBar和the 之间的联系的方法SwipeView。
以下代码是我提出的最好的代码。它正确地进入到第二页,当我改变当前页面用TabBar的SwipeView还是更新。但是,滑动到新页面将不再更新TabBar。似乎在对冒号进行初始化时,设置tabBar.currentIndex为swipeView.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) 我试图确定以下代码是否安全,或者是否为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找到了以下内容,但似乎无法完全回答我的问题:
破坏顺序
对于用户定义或隐式定义的析构函数,在执行析构函数的主体之后,编译器将以声明的相反顺序为该类的所有非静态非变量成员调用析构函数,然后调用的析构函数。所有直接的非虚拟基类,其构造顺序相反(依次调用其成员及其基类的析构函数,等等),然后,如果此对象属于派生类最多的对象,则它将调用所有虚拟基类的析构函数基地。
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。有什么方法可以覆盖它并强制它将其解释为换行符而不是两个单独的字符?
我有以下课程:
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类中找不到这样的方法时不应该调用吗?
我正在使用一个函数,该函数需要我传入一个 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) 在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) 我想要一个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