小编Wil*_*mKF的帖子

如何形成一个SQL查询,就像在两列中使用'IN'一样?

我有两个整数列,我希望选择具有特定值对的行.我可以使用哪种SQL语法?例如,IN如果IN支持这种语法,使用它可能看起来像这样:

select * 
 from myTable 
 where value1, value2 in ((2,3), (3,4), (2,5), (3,6))
Run Code Online (Sandbox Code Playgroud)

用它来选择那些行 value1 == 2 and value2 == 3 or value1==3 and value2==4 or 2/5 or 3/6.

我正在使用专有的SQL系统,因此首选基本SQL.或者如果没有,那么在某些标准SQL中使用一个语句也会很有用.

sql select

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

可以抛出对象的构造函数抛出异常吗?

在C++中,对于要抛出的对象的构造函数是否有效会引发异常?换句话说,当我们还在构建要抛出的对象时,我们还在投掷吗?

struct Error {
  Error() {
    if (someCondition()) {
      throw anotherObject();
    }
  }
};

void test() {
  throw Error();
}
Run Code Online (Sandbox Code Playgroud)

c++ exception throw

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

如何让std :: stringsteam在浮点数上排列小数位?

在C++中,我有一些像这样的代码:

float hits = 10.12;
float mins = 2.19;
std::ostringstream ss;

ss.precision(2);

ss << std::fixed << hits << "%\n"
   << std::fixed << mins << "%";

std::cout << ss.str();
Run Code Online (Sandbox Code Playgroud)

哪个给了我这个输出:

10.12%
2.19%
Run Code Online (Sandbox Code Playgroud)

而我希望小数位对齐:

10.12%
 2.19%
Run Code Online (Sandbox Code Playgroud)

有没有办法在小数点前填充空格,以便在小数位前有两位数的固定空格宽度?

c++ floating-point stringstream string-formatting text-alignment

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

如何在Tcl 8.4中申请?

在Tcl 8.5中,我可以这样做:

apply llength { 1 2 3 }
Run Code Online (Sandbox Code Playgroud)

但是这个适用并没有在v8.4中定义.

如何在v8.4中使用Tcl定义apply?

我需要这个,因为我正在将一些lisp代码转换为Tcl.lisp代码有一些我希望像这样移植的构造:

array set levels {
  TRACE  0
  DEBUG  1
  INFO   2
  WARN   3
  ERROR  4
}

set LOG_LEVEL INFO
proc setLogLevel { level } {
  global LOG_LEVEL

  set LOG_LEVEL $level
}

proc log { tag msg args } {
  global levels
  global LOG_LEVEL

  # Filter out any messages below the logging severity threshold.
  if { $levels($LOG_LEVEL) <= $levels($tag) } then {
    apply format $msg $args
  }
}

proc logTrace …
Run Code Online (Sandbox Code Playgroud)

list tcl args apply

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

Linux上的程序如何内省其pid?

Linux上的程序如何发现自身的进程ID?/ proc/self中有什么东西可以解决这个问题吗?

linux introspection

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

C++析构函数在抛出特定异常时跳过工作的方法?

我在堆栈上有一个对象,我希望它的析构函数在调用析构函数时跳过一些工作,因为堆栈正在解开,因为特定的异常是通过堆栈上的对象范围抛出的.

现在我可以在堆栈项的范围内添加一个try catch块并捕获有问题的异常并通知堆栈对象不运行要跳过的工作然后重新抛出异常,如下所示:

RAII_Class pending;

try {
  doSomeWorkThatMayThrowException();
} catch (exceptionToSkipPendingDtor &err) {
  pending.notifySkipResourceRelease();
  throw;
}
Run Code Online (Sandbox Code Playgroud)

但是,我希望有更优雅的方式来做到这一点.例如想象:

RAII_Class::~RAII_Class {
  if (detectExceptionToSkipPendingDtorBeingThrown()) {
    return;
  }
  releaseResource();
}
Run Code Online (Sandbox Code Playgroud)

c++ destructor exception raii

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

我可以教dynamic_cast&lt;&gt;()新技巧吗?

C++ 中有没有一种方法可以构造您的类,以便给定一个指向您的类的指针,您可以指示dynamic_cast<>() 如何转换为您要包装其实现的另一个类?运算符强制转换可以解决问题吗?想象一下,我有一个抽象接口基类,并从中派生出一个creteA和一个concreteB,但concreteB将该接口包装到一个concreteA类型的对象。如果我收到从creteA转换为concreteA的请求,我希望它能够工作:

class Abstract {
public:
  virtual void interface() = 0;

};

class concreteA : public Abstract {
public:
  virtual void interface();

};

class concreteB : public Abstract {
public:
  concreteB(concreteA &underlying)
    : _underlying(&underlying) {
  }
  virtual void interface();

  operator concreteA*() {
    return _underlying;
  }

private:
  concreteA *_underlying;

};

void
myTest() {
  concreteA myClassA;
  concreteB myClassB(myClassA);
  Abstract *abstract = &myClassB;
  concreteA *underlying = dynamic_cast<concreteA *>(abstract);
}
Run Code Online (Sandbox Code Playgroud)

c++ abstract-class dynamic-cast concrete

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

在C#中,如何将基类声明为私有?

我知道如何在C++中执行此操作:

class myClass : public baseClass1 private baseClass2 ...
Run Code Online (Sandbox Code Playgroud)

我如何在C#中做同样的事情?

这是我到目前为止在C#中所拥有的

public class myClass : baseClass1, baseClass2
Run Code Online (Sandbox Code Playgroud)

如何指定baseClass2是私有的?

c# c++ private base-class

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

如何使用scanf获取指针大小的整数?

我有一些继承的FlexLM代码,它将整数转换为需要在32位和64位机器上工作的指针.使用scanf从程序的参数的argc填充整数以读取整数值.

我应该如何可靠地读取argc字符串以获得适合分配指针的值,以便它可以在32位和64位计算机上运行?

目前代码看起来像这样:

// FlexLM includes this:
typedef char * LM_A_VAL_TYPE; /* so that it will be big enough for */
                              /* any data type on any system */

// My main() includes this:
[...]
if (!strcmp(argv[i], "-maxlen")) {
  int max = 0;
  i++;

  if (i >= argc) {
    break;
  }
  sscanf(argv[i], "%d", &max);
  if (!max) {
    fprintf(stderr, "Error: -maxlen %s Invalid line length\n", argv[i]);
  } else {
    lc_set_attr(lm_job, LM_A_MAX_LICENSE_LEN, (LM_A_VAL_TYPE)max);
  }
}
[...]
Run Code Online (Sandbox Code Playgroud)

起初我以为我可以使用uintptr_t,但我怎么能相应scanf地知道尺寸呢?也许我应该把它作为指针值使用%p …

c++ scanf command-line-arguments 32bit-64bit flexlm

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

为什么std :: ifstream构造函数不带std :: string?

可能重复:
std :: ifstream类的设计
为什么(i | o)fstream采用const char*参数作为文件名?

看一下std :: ifstream的构造函数,我发现两个:

ifstream ( );
explicit ifstream ( const char * filename, ios_base::openmode mode = ios_base::in );
Run Code Online (Sandbox Code Playgroud)

为什么第二个拿一个const char *而不是一个const std::string &

这是某种避免循环或前向参考吗?

c++ string constructor std ifstream

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