小编Mic*_*ael的帖子

如何知道某个类型是否是std :: vector的特化?

我整个早上都遇到过这个问题而没有任何结果.基本上,我需要一个简单的元编程事物,如果传递的参数是一种std :: vector,我可以分支到不同的特化.

某种类型的is_base_of用于模板.

这样的事情存在吗 ?

c++ metaprogramming

16
推荐指数
3
解决办法
4630
查看次数

构建库时的Clang和undefined符号

我正在研究一个C++框架,当我在使用Clang的OSX上编译它时会出现一些问题.

首先,我正在使用其他一些库,例如openssl,而clang抱怨我在构建库时没有解决某些符号.它们不应该是:这些库将与最终的二进制文件链接,它不应该发生在中介上.

然后,还有一些方法和变量应该在"客户端"二进制文件中实现...使用GCC,没有问题,但Clang也抱怨这些符号在编译期间无法解决.

怎么会 ?我该怎么办 ?

这是我的CMakeLists.txt,以防有用:

cmake_minimum_required(VERSION 2.8)

project(crails_project)

set(CMAKE_CXX_FLAGS "-std=c++0x -Wall -Wno-deprecated-declarations -pedantic -DASYNC_SERVER -DSERVER_DEBUG -DUSE_MONGODB_SESSION_STORE")

find_package(cppnetlib REQUIRED)

include_directories(include /usr/local/include ${CPPNETLIB_INCLUDE_DIRS} .)

file(GLOB crails_core
     src/*.cpp)

file(GLOB crails_sql
     src/sql/*.cpp)

file(GLOB crails_mongodb
     src/mongodb/*.cpp)

add_library(crails-core    SHARED ${crails_core})
add_library(crails-sql     SHARED ${crails_sql})
add_library(crails-mongodb SHARED ${crails_mongodb})
Run Code Online (Sandbox Code Playgroud)

这是崩溃的命令:

/usr/bin/c++  -std=c++0x -Wall -Wno-deprecated-declarations -pedantic -DASYNC_SERVER -DSERVER_DEBUG -DUSE_MONGODB_SESSION_STORE -dynamiclib -Wl,-headerpad_max_install_names   -o libcrails-core.dylib -install_name /Users/michael/Personal/crails/build/libcrails-core.dylib CMakeFiles/crails-core.dir/src/assets.cpp.o CMakeFiles/crails-core.dir/src/cgi2params.cpp.o CMakeFiles/crails-core.dir/src/cipher.cpp.o [...]
Run Code Online (Sandbox Code Playgroud)

以下是我得到的两种错误:

架构x86_64的未定义符号:

  "_BIO_ctrl", referenced from:
      Cipher::encode_base64(unsigned char*, unsigned int) const in cipher.cpp.o
Run Code Online (Sandbox Code Playgroud)

第二个:

  NOTE: a missing vtable usually means …
Run Code Online (Sandbox Code Playgroud)

c++ cmake clang

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

使用QList <QObject*>作为模型的QML ListView

Qt的文档在这个问题上似乎有点简短,但我正在尝试使用QLists作为ListView的模型.问题是,我代表一个层次结构,每当点击一个项目时,模型就会与另一个项目交换,QML从C++回调中获取.

这是表示列表项的对象:

class MyObject : public QObject
{
  Q_OBJECT
  Q_PROPERTY(QString         name     READ getName WRITE setName)
  Q_PROPERTY(QString         subtitle READ getSubtitle)
  Q_PROPERTY(QList<QObject*> descent  READ getChildren NOTIFY childrenUpdated)
  ...
}
Run Code Online (Sandbox Code Playgroud)

以及我如何在QML中使用它:

ListView {
  id: list_view
  model: myModel
  anchors.fill: parent
  delegate: Item {
    id: row
    height: 50
    anchors.left: parent.left
    anchors.right: parent.right

    MouseArea {
      anchors.fill: row
      onClicked: {
        list_view.model = descent;
      }
    }

    Column {
      Text { text: name }
      Text { text: subtitle }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

"myModel"模型在main中设置,如下所示:

context->setContextProperty("myModel", QVariant::fromValue(folder.getChildren()));
Run Code Online (Sandbox Code Playgroud)

第一次出现ListView时,它使用myModel作为模型,它可以工作.但是,每当我点击某个项目时,ListView会创建预期的确切项目数...但它无法读取任何属性!

为什么ListView确切地知道需要创建多少项目,却看不到它们的属性?

c++ qt qml

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

如何更新图像的来源

我正在使用RaphaëlJavascriptlib(顺便提一下SVG渲染的很棒的东西),我正在尝试在鼠标移过它时更新图像的来源.

事情是我找不到任何关于它的东西(它可能甚至不可能,考虑到我已经阅读了Raphaël的很大一部分来源而没有发现任何相关内容).

有人知道这样做的方法吗?也许它可以在没有直接使用Raphaël的API的情况下完成,但由于生成的DOM元素没有ID,我不知道如何手动更改其属性.

我实际上在做CoffeeScript,但它很容易理解.CoffeeScript毕竟是Javascript.这就是我正确知道的,我希望MouseOver和MouseOut方法更改"bg"属性的来源.

class Avatar
  constructor: (father, pic, posx, posy) ->
    @bg = father.container.image "pics/avatar-bg.png", posx, posy, 112, 112
    @avatar = father.container.image pic, posx + 10, posy + 10, 92, 92
    mouseOver = => @MouseOver()
    mouseOut = => @MouseOut()
    @bg.mouseover mouseOver
    @bg.mouseout mouseOut

  MouseOver: ->
    @bg.src = "pics/avatar-bg-hovered.png"
    alert "Hover"


  MouseOut: ->
    @bg.src = "pics/avatar-bg.png"
    alert "Unhovered"

class Slider
  constructor: ->
    @container = Raphael "raphael", 320, 200
    @sliderTab = new Array()

  AddAvatar: (pic) ->
    @sliderTab.push new Avatar this, pic, …
Run Code Online (Sandbox Code Playgroud)

javascript image raphael

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

标签 统计

c++ ×3

clang ×1

cmake ×1

image ×1

javascript ×1

metaprogramming ×1

qml ×1

qt ×1

raphael ×1