小编Tim*_*Tim的帖子

泰勒系列扩展为constexpr

我正在尝试sine使用泰勒系列扩展构建一个简单的函数,可以在编译时使用C++ 14进行评估constexpr.我的代码正在编译,但编译器不会生成常量.

sine 定义如下:

template <int P, typename T = double> constexpr T sine(T x) {
    T result = x;

    for (int i = 1; i < P; ++i)
        result += power<T>(-1, i) * power<T>(x, 1 + 2 * i) / factorial<T>(1 + 2 * i);

    return result;
}
Run Code Online (Sandbox Code Playgroud)

我可以提供代码power,factorial如果需要的话.它们是微不足道的constexpr.

sine在这样的循环中调用:

template <int N> void test(double *out) {
    for (int i = 0; i < N; ++i) { …
Run Code Online (Sandbox Code Playgroud)

c++ trigonometry taylor-series constexpr c++14

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

格式错误的 mach-o 图像:符号表欠载 __LINKEDIT

使用在 macOS Sierra 的 GM 上构建的新 Xcode 8 GM,我重新编译了一个 Qt 5.7 C++ 项目,并且在尝试启动应用程序时收到以下错误消息:

原因:没有找到合适的图片。有没有发现:

/path/to/my/lib/libio_core.dylib: 格式错误的 mach-o 图像:符号表欠载 __LINKEDIT

这不会在调试版本中发生,只会在发布时发生。有没有人知道这意味着什么以及如何解决它?


更新:

这实际上与 Xcode 8 无关。使用 Xcode 7.3.1 构建相同的代码会产生相同的结果。似乎一些在 El Capitan 上运行良好的应用程序无法在 Sierra 上运行并因上述错误而失败。


更新 2:有关我的二进制文件中符号表的详细信息:

Load command 5
     cmd LC_SYMTAB
 cmdsize 24
  symoff 0
   nsyms 0
  stroff 12760
 strsize 8
Run Code Online (Sandbox Code Playgroud)

xcode qt macos-sierra

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

来自抽象类的unique_ptr的shared_ptr

我正在尝试遵循Herb Sutter的C++指南,在这种情况下更喜欢unique_ptr原始指针和shared_ptr.赞成的一个论点std::unique_ptrshared_ptr在某些时候需要的可兑换性.

在我来说,我有一个vectorunique_ptr,我需要传递给需要的方法vectorshared_ptr.我希望能写出类似的东西:

for (auto &uniquePtr : vectorUnique)
    vectorShared.push_back(make_shared<Abstract>(move(uniquePtr));
Run Code Online (Sandbox Code Playgroud)

这为我的Xcode 7.1基于工具链配置的以下错误C++11:

错误:字段类型'Abstract'是一个抽象类.

似乎STL Abstract在我使用时试图保持一个具体的类型实例make_shared.这似乎使Sutter先生的建议在许多情况下变得不可行,所以我确信我一定做错了!我求助于写作:

for (auto &uniquePtr : vectorUnique) {
    auto ptr = uniquePtr.get();
    auto shared = shared_ptr<Abstract>(ptr);
    vectorShared.push_back(shared);
    uniquePtr.release();
}
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

c++ abstract unique-ptr make-shared c++11

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

为什么 QML 删除我的 C++ ListView 模型?

使用Qt 5.5.1oniOS 9我试图将动态创建的分配给 aQAbstractListModelmodel属性ListView

Window {
    ListView {
        model: api.model()
        delegate: delegate
    }
    Component {
        id: delegate
        Text { text: "Test" }
    }
}
Run Code Online (Sandbox Code Playgroud)

apiC++分配给QML上下文的对象setContextProperty。该model方法是一个Q_INVOKABLE返回一个QAbstractListModel *。这一切都有效,我ListView的数据填充了。

问题是当我开始滚动时。通常在第二次完整滚动(到底部,再次向上和向下)之后,我ListView开始自我清除。调试器告诉我QAbstractListModel正在被销毁。

我不想CppOwnership在模型上设置。有没有另一种方法可以防止ListView破坏其模型?

c++ qt listview qml ios

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

Azure B2C:Microsoft Graph API - InvalidAuthenticationToken

/me从 iOS 登录 Azure B2C Active Directory 后,我尝试调用Microsoft Graph API。

使用以下示例应用程序:https : //github.com/Azure-Samples/active-directory-b2c-ios-swift-native-msa我替换了常量,以便注册和登录工作。我已经设置kGraphURIhttps://graph.microsoft.com/v1.0/me. 代码如下所示:

let kTenantName = "mytenant.onmicrosoft.com"
let kAuthorityHostName = "mytenant.b2clogin.com"
let kClientID = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
let kSignupOrSigninPolicy = "B2C_1A_signup_signin"
let kGraphURI = "https://graph.microsoft.com/v1.0/me"
let kScopes: [String] = ["https://mytenant.onmicrosoft.com/api/user_impersonation"]
Run Code Online (Sandbox Code Playgroud)

的值kScopes设置为我的应用程序唯一可用的 API,它是作为设置用户策略的说明的一部分创建的。

当我尝试打电话时,https://graph.microsoft.com/v1.0/me我回来了:

{ "error": { "code": "InvalidAuthenticationToken", "message": "访问令牌验证失败。", "innerError": { "request-id": "e923673f-25cb-44be-b3b9-94eda660d4f6", "日期": "2020-02-11T08:31:24" } } }

如果我尝试设置kScopeshttps://graph.microsoft.com/User.Read我得到一个错误:

无法获取令牌:错误域=MSALErrorDomain Code=-50000 "(null)" UserInfo={MSALErrorDescriptionKey=收到的身份验证响应没有预期的 accessToken, MSALInternalErrorCodeKey=-42008, …

azure-active-directory azure-ad-b2c azure-ad-msal

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