小编ere*_*non的帖子

如何在不同的工作区上共享Eclipse配置

我在不同的机器上使用Eclipse(PDT)作为主IDE.(如在家里,笔记本电脑,办公室等).我如何在多台计算机之间以实际方式共享Eclipse和项目配置?我应该控制它们的版本,还是有更简单的方法来做到这一点?

你如何确保使用相同的旧有甚至最新配置所有的计算机?

eclipse configuration eclipse-pdt

125
推荐指数
5
解决办法
8万
查看次数

NSUserDefault线程安全吗?

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html说它是

...应禁止用户通过禁用任何适当的控件来编辑该首选项.

NSUserDefaults的类是线程安全的.NSURL和文件引用URL的持久性......

这个长时间的讨论说它不是

http://www.cocoabuilder.com/archive/cocoa/155227-nsuserdefaults-thread-safety.html

那么哪一个是对的?也为什么意见分歧.

arrays objective-c thread-safety

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

GCC和Clang模板调用解析差异

给出以下代码:

#include <iostream>

struct Alice
{
  template <typename A>
  void operator|(const A& /*a*/) const
  {
    std::cout << "operator| member" << std::endl;
  }
};

template <typename A>
void operator|(const A& /*a*/, const Alice& /*alice*/)
{
  std::cout << "operator| non-member" << std::endl;
}

int main()
{
  Alice a;
  Alice b;

  a | b;

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

它在没有警告的情况下编译GCC 4.8.1,4.9和clang 3.4,但给出了不同的结果.

$ g++ -Wall -Wextra -std=c++11 alice.cpp && ./a.out
operator| non-member

$ clang++ -Wall -Wextra -std=c++11 alice.cpp && ./a.out
operator| member
Run Code Online (Sandbox Code Playgroud)

是什么导致这种差异?我怎么能强迫同样的行为?

编辑:有趣的事实: …

c++ gcc clang language-lawyer

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

如何以实用的方式控制配置文件的版本?

假设我们有一个包含敏感密码的配置文件.我想版本控制整个项目,包括配置文件,但我不想共享我的密码.
这可能是好的,如果这个配置文件:

database_password=secret
foo=bar
Run Code Online (Sandbox Code Playgroud)

database_password=*
foo=bar
Run Code Online (Sandbox Code Playgroud)

而且vcs的其他用户也可以自己设置密码.忽略文件不是一个好方法,开发人员应该知道,如果配置文件发生了变化.

例:

本地版本:

database_password=own_secret
foo=bar
Run Code Online (Sandbox Code Playgroud)

vcs中的配置文件:

database_password=*
foo=bar
Run Code Online (Sandbox Code Playgroud)

然后突然,配置文件发生了变化:

database_password=*
foo=bar
baz=foo
Run Code Online (Sandbox Code Playgroud)

每个开发人员都会使用本地版本:

database_password=own_secret
foo=bar
baz=foo
Run Code Online (Sandbox Code Playgroud)

这是我的解决方案.我怎么能实现这种行为?你如何存储你的配置文件?有没有办法做到这一点,还是我应该破解什么?

svn version-control configuration-files

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

内联静态数据会导致节类型冲突

我想将一些用户定义的数据放入自定义部分,以便同时由应用程序和离线分析器读取.假设以下示例:

const int* get_data()
{
  __attribute__((section(".custom")))
  static const int data = 123;

  return & data;
}

inline const int* inline_get_data()
{
  __attribute__((section(".custom")))
  static const int inline_data = 123;

  return & inline_data;
}

int main()
{
  (void) get_data();
  (void) inline_get_data();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

的价值datainline_data将出现在部分.custom.Clang编译此示例并生成正确的结果,就像MSVC一样,当它__attributes__相应的编译指示替换时.

不幸的是,GCC 5.2给出了以下错误:

error: inline_data causes a section type conflict with data
Run Code Online (Sandbox Code Playgroud)

这个问题归结为一个事实,即这两个变量具有不同的链接(data在一节标记a,的部分inline_data将被标记aG).如果第二个函数没有标记为内联但是模板(GCC 5.2编译它),则GCC 4.9会以相同的方式失败.

如果临时更改了一个部分名称并在生成的程序集中手动修复,GCC 5.2也会编译正常.

这个问题有没有已知的解决方法?我无法控制函数签名, …

c++ linker gcc elf

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

Eclipse的"必备"开发工具/插件

根据这篇文章,我问$ title.哪些是您最喜欢的PHP编码相关的Eclipse插件?没有你不能活下去?为什么?
我列出了我自己的选择插件:

你的是哪一个?

php eclipse plugins favorites

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

用于下载文件的PHP脚本在IE中不起作用

我有一个脚本从$ _GET ['key']获取一个键,查找数据库中的位置并使用readfile和一些标题来提供下载供使用.这适用于Firefox而不是IE8,无法在另一个IE上测试它.我在IE中收到以下错误:"Internet Explorer无法从www.example.com下载download.php".好像它正在尝试下载PHP脚本.


$the_query = "SELECT * FROM `files` WHERE `user_id`=" . $_SESSION['user_id'] . " AND `key`='" . $key . "'";

$result = mysql_query($the_query);
$row = mysql_fetch_array($result);

$file = '/var/www/vhosts/www.example.com/httpsdocs/uploads/' . $row['id'] . '/' . $row['file'];

header("Content-type: application/octet-stream");
header("Content-length: ".filesize($file));
header('Content-Description: File Transfer');
header("Cache-control: private");
header('Content-Disposition: attachment; filename=' . rawurlencode(basename($file)));
readfile($file);
Run Code Online (Sandbox Code Playgroud)

php http-headers

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

如何区分http和cli请求?

标题很安静直截了当.我必须在服务器端知道脚本是通过HTTP请求还是通过命令行调用的.我可以检查$_SERVER['argv']$_SERVER['argc'].这样做
实用方法是什么?

php http request command-line-interface

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

gcc能否根据条件优化我的周期?

我有以下周期:

//condition will be set here to true or false

for (int i = 0; i < LARGE_NUMBER; i++) {
    if (condition) {
        //do foo
    } else {
        //do bar
    }
}
Run Code Online (Sandbox Code Playgroud)

假设:没有条件而不是条件的周期更快.(这是真的吗?)问题:请问gcc if是否因为我condition已经设置了,如果已经设置了for循环,那么循环本身不会触及condition

如果没有,我应该切换iffor重复代码,违反DRY等.

c c++ optimization gcc

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

node.js native addon - 包装类的析构函数不运行

我正在用C++编写node.js插件.我使用node :: ObjectWrap包装一些类实例,以将本机实例与javascript对象相关联.我的问题是,包装实例的析构函数永远不会运行.

这是一个例子:

point.cc

#include <node.h>
#include <v8.h>

#include <iostream>

using namespace v8;
using namespace node;

class Point 
:ObjectWrap
{
protected:
    int x;
    int y;
public:
    Point(int x, int y) :x(x), y(y) {
        std::cout << "point constructs" << std::endl;
    }

    ~Point() {
        std::cout << "point destructs" << std::endl;
    }

    static Handle<Value> New(const Arguments &args){
        HandleScope scope;

        // arg check is omitted for brevity
        Point *point = new Point(args[0]->Int32Value(), args[1]->Int32Value());
        point->Wrap(args.This());

        return scope.Close(args.This());
    } 

    static void Initialize(Handle<Object> target){
        HandleScope scope; …
Run Code Online (Sandbox Code Playgroud)

c++ garbage-collection memory-management node.js

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