小编Cod*_*wer的帖子

从cmake build中删除特定文件

我有一个项目,其中我基本上有两个主要方法.一个用于测试,一个用于运行代码.通常你会创建子模块,但这不是一个选项.

file(GLOB sources "*.cpp")
file(GLOB headers "*.h")
add_executable(testing ${sources} ${headers})   
add_executable(main ${sources} ${headers})   
Run Code Online (Sandbox Code Playgroud)

所以测试应该编译除main.cpp之外的所有源代码.Main应编译除了testing.cpp之外的所有内容.

cmake

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

在AngularJs中注销时清除服务中数据的最佳实践

我有几个服务使用Web服务并缓存大量结果.通过缓存我的意思是存储在服务上的变量.当用户注销时,应清除数据.服务如下所示(简化版):

class DataService   {

  private data;

  constructor($http)
  {
     $http.get(url).then((response) => 
       { 
          this.data = response.data;
       });
  }
Run Code Online (Sandbox Code Playgroud)

}

哪个是打字稿,但解析成这样的东西:

var DataService = (function () {
    function DataService($http) {
        var _this = this;
        $http.get(url).then(function (response) {
            _this.data = response.data;
        });
    }
    return DataService;
})();
Run Code Online (Sandbox Code Playgroud)

我可以使用本课题中的答案清除数据,这样 做是这样的:

$rootScope.on('logout',function(){
  this.data = [];
});
Run Code Online (Sandbox Code Playgroud)

但是,当我们有多个服务和控制器时,这是很多代码.我们都知道这个新人会在服务中添加一些新数据,并忘记将其添加到注销序列中.这简直是​​一种不好的做法.

类似地,数据存储在应用程序各个部分的$ scope中,这也必须清除.范围相当简单,因为控制器的构造函数在每次页面访问时加载,然后将覆盖数据.

一个提议的解决方案是进行刷新,但这会给用户带来可怕的体验.

一种解决方案可能是使角度相信从未创建过服务或完全重新加载角度.

做这个的最好方式是什么?将数据存储在服务变量中是不是很糟糕?

javascript angularjs

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

是否应该将std :: move用于返回语句以提高效率?

我无法弄清楚以下代码中的std :: move是否有什么好处或完全错误?该类Object同时定义了Move和Copy构造函数.

第一:使用Move:

template<typename T> template <typename F> 
const Object<T> Object<T>::operator*(const F& rhs) const 
{
    return std::move(Object(*this) *= rhs);  // We end in move constructor
}
Run Code Online (Sandbox Code Playgroud)

第二:没有移动:

template<typename T> template <typename F> 
const Object<T> Object<T>::operator*(const F& rhs) const 
{
    return Object(*this) *= rhs; // We end in copy constructor
}
Run Code Online (Sandbox Code Playgroud)

*=操作者被定义为:

template<typename T> template<typename F>  
Object<T>& Object<T>::operator*=(const F& rhs) 
{
    for(int i = 0; i < dimension ; i++)
    {
        _inner[i] *= rhs;
    } …
Run Code Online (Sandbox Code Playgroud)

c++ move-semantics c++11

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

测量移植到嵌入式平台的C++的静态内存使用情况

我已经创建了一个小程序作为系统的概念验证,这些系统将在嵌入式平台上实现.该程序是用C++ 11编写的,使用std编译并在笔记本电脑上运行.应该在以后实施的最终程序是嵌入式系统.我们无权访问嵌入式平台的编译器.

我想知道是否有一种方法可以在将应用程序移植到嵌入式平台时以合理且可比较的方式确定程序静态内存(已编译二进制文件的大小).要求是二进制文件的大小小于10kb.编译时,我们的二进制文件大小为700Kb,并使用以下标志进行剥离:

g++ options:     -Os -s -ffunction-sections -fdata-sections
linker options:  -s -Wl,--gc-sections

strip libmodel.a -s -R .comment -R .gnu.version --strip-unneeded -R .note
Run Code Online (Sandbox Code Playgroud)

在使用条带和优化选项之前,它占用了4MB.

我仍然离开,这不是一个很大的计划.如何以任何方式与嵌入式平台上的等效程序进行比较是合理的.

c++ embedded optimization g++

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

将现有JAR转换为OSGi-bundle

我有一个JAR文件,我需要转换为OSGi包.我没有JAR文件的原始源代码.

我尝试使用以下答案:如何从jar库创建OSGi包?

但是,它们已经过时了.

编辑:我需要转换几个,但固定数量的罐子.

java osgi intellij-idea osgi-bundle

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

Gettext没有通过php-cli工作,但在php-apache中工作

我运行的代码如下所示:

...
$this->locale = da_DK;
...
putenv("LC_ALL=".$this->locale);
putenv('LANG='.$this->locale);
$res = setlocale(LC_ALL, $this->locale);
if($res != $this->locale){
    throw new Exception("The language could not be set.");
}
bindtextdomain("domain", "./locale");
textdomain("domain");

 echo setlocale(LC_MESSAGES, 0 );
 echo ' ';
 echo __('description');
Run Code Online (Sandbox Code Playgroud)

通过apache2运行它的结果是:

da_DK Beskrivelse
Run Code Online (Sandbox Code Playgroud)

这是我们想要的.

运行它throgh cli:

da_DK Description
Run Code Online (Sandbox Code Playgroud)

如果我们使用英语,那将是正确的.'d'在英语翻译中是大写,在源中是小写(从上下文看起来有点奇怪)

因此gettext可以工作,因为它可以翻译字符串,但不知何故,它忽略了我在脚本中更改了语言环境并从英语目录中选择了.po文件.

如果您想知道我为什么需要cli脚本上的语言环境:该脚本用于通过电子邮件发送发票.

我使用:Ubuntu 12.10,PHP 5.4.6-1ubuntu1,apache 2.2.22和gettext 0.18.1.

php apache locale gettext internationalization

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

无法使用Hibernate createQuery实例化类

我正在尝试使用hibernate创建对象,这不是域模型,但我得到一个难以理解的错误消息.

我的Java代码:

public BoxMeasureStat getBoxStat(long box_id, long ) {

    TypedQuery<BoxMeasureStat> data = em.createQuery(
            "SELECT NEW org.massema.util.BoxMeasureStat(MIN(bm.value), AVG(bm.value) , MAX(bm.value), MAX(bm.start_time) ) "
                + "FROM  bm WHERE bm.box_id = :box_id "
                + "AND bm.type_id = :type_id "
                + "order by start_time desc limit 1", BoxMeasureStat.class)
                .setParameter("box_id", box_id)
                .setParameter("type_id", type_id);

    BoxMeasureStat result = data.getSingleResult(); 

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

班级:

package org.massema.util;

import java.lang.Float;
import java.util.Date;

import org.joda.time.DateTime;


public class BoxMeasureStat {

    private String type;
    private Float min;
    private Double avg;
    private Float max; …
Run Code Online (Sandbox Code Playgroud)

java postgresql hibernate jpa

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

将值映射到色标

我有一个值列表,应该绘制到具有特定颜色的地图.绘制地图已经完成,但我需要找出一种方法将值映射n到表示其值的颜色.

到目前为止,一个示例和我的解决方案是基于min和标准化值max,然后将它们分配给0最低和255最高的十六进制颜色.这当然限制了我自己的灰度.这是代码:

$color = ($value / $max) * 255    // (min is zero)
Run Code Online (Sandbox Code Playgroud)

但是,如果值应该从蓝色变为红色,如何做到这一点?是否有任何可以解决此问题的通用库或工具?到目前为止,我还没能找到任何一个.

php colors

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

访问 TypeScript 中默认无名类中的静态属性

如果我定义一个这样的类(在一个名为 .MyClass.ts 的文件中)

export default class {
    static someProperty = 1;

    someMethod() {
       var a = ????.someProperty
    }

}
Run Code Online (Sandbox Code Playgroud)

如何访问 someProperty. 显然,使用this.someProperty不起作用。也不能使用名称。如果它是一个命名类,则可以通过SomeClassName.someProperty.

如果我将模块加载到另一个文件中。我可以通过以下方式访问它:

MyClass.someProperty
Run Code Online (Sandbox Code Playgroud)

typescript

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

编译器是否在c ++中优化静态值的if语句

我正在为拼贴分配工作一个通用库类,并且代码运行尽可能高效非常重要,也就是说,如果我们可以减少if语句,我们应该这样做.

如果它是一个基本类型,如double或int,我有以下代码初始化数组.

T b[dim];
if(std::is_fundemental::<T>::value) 
{ 
    memset(b, 0, dim*sizeof(T));
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是这个检查是否已经过优化,这样它就不会进行运行时检查,或者我是否需要为基本类型的专门化创建初始化模板?

我使用G ++和C++ 11,但它应该能够在不检查大多数(最好是所有)编译器的情况下运行.

c++ optimization performance c++11

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

Spring + Spring Security + hasPermission不工作

我正在尝试使用Spring Security 3和Struts 2以及Spring DI.我在我的代码中放了hasRole()注释,它工作正常,但hasPermission()注释不起作用.我做了表达式处理程序,自定义权限评估程序等.

这是代码

applicationContext.xml中

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans> 
 <import resource="mySecurity.xml"/>
<bean id="myAction" name="myAction" class="code.action.MyAction" autowire="byName">
</bean>
<bean id="permission" name="permission" class="code.permission.Permission" autowire="byName">
</bean>
<bean id="myEntity" name="myEntity" class="code.entities.MyEntity" autowire="byName">
</bean>
<bean id="expressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler" 
    name="expressionHandler" autowire="byName">
</bean>
<bean class="code.permission.MyCustomPermissionEvaluator" id="customPermissionEvaluator" name="customPermissionEvaluator" autowire="byName" />
</beans>
Run Code Online (Sandbox Code Playgroud)

这是我的acl-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:p="http://www.springframework.org/schema/p"
 xmlns:util="http://www.springframework.org/schema/util"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/util
   http://www.springframework.org/schema/util/spring-util-3.0.xsd">

    <!-- Declare a simple map containing all our roles -->
    <util:map id="permissionsMap">
         <entry key="ROLE_USER" value-ref="user"/>
     </util:map>

 <!-- …
Run Code Online (Sandbox Code Playgroud)

spring spring-security

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