小编Gus*_*orn的帖子

Anko 0.8 - 未解决的lparams参考

主要问题是:lparams简单地从Anko离开,还是我做了一件非常错误的事情?以下代码段无法编译:

verticalLayout {
}.lparams(width = matchParent, height = matchParent) {
    topMargin = dip(10)
}
Run Code Online (Sandbox Code Playgroud)

虽然这没有任何问题:

verticalLayout {
    layoutParams = LinearLayout.LayoutParams(matchParent, matchParent).apply {
        topMargin = dip(10)
    }
}
Run Code Online (Sandbox Code Playgroud)

我不介意第二个选项太多,但是你必须在生成参数时指定布局类型,这可能会让人觉得有点烦人(并且比原始解决方案更脆).

我没有在AnkoGitHub页面,更改日志或通过浏览最近的提交找到任何内容.这是完整的UI类供参考:

class ReviewsFragmentUi(ctx: AnkoContext<ReviewsFragment>) : AnkoComponent<ReviewsFragment> {
    override fun createView(ui: AnkoContext<ReviewsFragment>) = ui.apply {
        verticalLayout {
            layoutParams = LinearLayout.LayoutParams(matchParent, matchParent).apply {
                topMargin = dip(10)
            }
        }
    }.view
}
Run Code Online (Sandbox Code Playgroud)

相关的Gradle条目(我使用的是Kotlin 1.0.0-beta-3595):

ext.versions = [
    anko : '0.8.1',
]

compile "org.jetbrains.anko:anko-common:$versions.anko",
compile "org.jetbrains.anko:anko-sdk21:$versions.anko",
compile "org.jetbrains.anko:anko-support-v4:$versions.anko",
compile "org.jetbrains.anko:anko-design:$versions.anko",
compile "org.jetbrains.anko:anko-appcompat-v7:$versions.anko",
compile …
Run Code Online (Sandbox Code Playgroud)

kotlin anko

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

链接pthread会禁用无锁的shared_ptr实现

标题几乎传达了所有相关信息,但这里是一个最小的重复:

#include <atomic>
#include <cstdio>
#include <memory>

int main() {
    auto ptr = std::make_shared<int>(0);
    bool is_lockless = std::atomic_is_lock_free(&ptr);
    printf("shared_ptr is lockless: %d\n", is_lockless);
}
Run Code Online (Sandbox Code Playgroud)

使用以下编译器选项进行编译会产生无锁shared_ptr实现:

g++ -std=c++11 -march=native main.cpp
Run Code Online (Sandbox Code Playgroud)

虽然这不是:

g++ -std=c++11 -march=native -pthread main.cpp
Run Code Online (Sandbox Code Playgroud)

GCCversion :( 5.3.0在Linux上,使用libstdc++),在多台机器上进行测试,这些机器应具有必要的原子指令才能使其工作.

有没有办法强制实现无锁实现(我需要无锁版本,无论性能如何)?

c++ atomic lock-free shared-ptr c++11

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

标签 统计

anko ×1

atomic ×1

c++ ×1

c++11 ×1

kotlin ×1

lock-free ×1

shared-ptr ×1