我在构建系统中滥用C预处理器,从同一源文件生成“自述”纯文本文件和网页。构造是这样的:
实际的定义在data.h:
#define WEBSITE "http://example.com"
Run Code Online (Sandbox Code Playgroud)
请注意,//URL 中的 必须加引号,否则将被视为评论的开始。,在参数中使用 a 时也会出现类似的问题;引号是必需的,否则逗号将被视为参数分隔符。
使用此标头,文件将通过Creadme.txt.pp预处理器运行:
#include "data.h"
Visit the website at WEBSITE!
Run Code Online (Sandbox Code Playgroud)
当然,预处理器的输出是:
Visit the website at "http://example.com"!
Run Code Online (Sandbox Code Playgroud)
引号出现在输出中。有什么方法或解决方法可以让此代码给出输出:
Visit the website at http://example.com!
Run Code Online (Sandbox Code Playgroud)
我正在使用 Visual C++ 2008。我知道预处理器不是这项工作的理想工具;也欢迎使用其他内置 VC++ 功能的建议。(我尝试使用 XSLT 来构建 XML,但是不可能将一个 XML 文件包含到另一个 XML 文件中,这真是令人头疼。)
我需要一些帮助,为'if-condition'编写一个宏,只有在#define指令定义了DEBUG标志时才会编译.
这是一个说明我想要的例子.第一段代码显示了使用#ifdef编写if条件的常用方法.
#ifdef DEBUG
if( rv == false )
{
string errorStr = "error in return value" ;
cout << errorStr << endl ;
throw( Exception(errorStr) ) ;
}
Run Code Online (Sandbox Code Playgroud)
我想以类似下面的方式编写它:
DEBUG_IF( rv==false )
{
same code as above
}
Run Code Online (Sandbox Code Playgroud)
它似乎很简单,但我无法定义一个可以做到这一点的宏.如果有人以前经历过这种情况,请帮忙.
谢谢.
假设我的MySQL数据库中有以下两个表:
Table 1:: EMP: EmpID, EmpName
eg. (1, 'John'), (2,'Alex'),(3,'Tom')
Table 2:: Team: TeamID, ManagerID, MemberID
eg. record1: (Team1, 1, 2), record2: (Team1, 1, 3)
Run Code Online (Sandbox Code Playgroud)
所以有一个团队有id team1,John是经理,Alex和Tom是其成员.
我想以下列方式在屏幕上显示Team表的记录
| Team | Manager | Members |
| team1 | John | Alex, Tom |
Run Code Online (Sandbox Code Playgroud)
什么是SQL查询,它将加入上述两个表,并在基于memberID时返回成员的名称.
此外,结果将显示为包含由逗号分隔的所有团队成员的1行.
如果有更好的方法来设计这两个表,那么请同样建议.非常感谢.
谢谢.
我有一个随机情况,当我在 bash 中使用多项选择菜单并向我的列表选择添加更多项目时,菜单不再逐行堆叠
echo " [?] What would you like to do:"
echo
# End
opt=""
select recon in Enumeration General Web-Recon Services Msfvenom Other
do
opt="$recon"
case $recon in
Enumeration|General|Web-Recon|Services|Msfvenon|Other)
break
;;
*)
echo # Spacer
echo "You Sure? Try it again"
;;
esac
echo $recon
done
Run Code Online (Sandbox Code Playgroud)
我得到的看起来像这样:
[?] What would you like to do:
1) Enumeration 3) Web-Recon 5) Msfvenom
2) General 4) Services 6) Other
#?
Run Code Online (Sandbox Code Playgroud)
但是我更喜欢它看起来像这样:
1) Enumeration
2) General
3) Web-Recon
4) Services
5) Msfvenom …Run Code Online (Sandbox Code Playgroud) 我们有一个数据库结构如下:
foo
bar
尝试将文档写入bar包含 34571 个字段的集合,我得到(来自 Go API):
rpc 错误:代码 = InvalidArgument desc = 实体的内置索引条目过多
好吧,好吧,看来我需要添加一个豁免:
大型数组或地图字段
大型数组或地图字段可以接近每个文档 20,000 个索引条目的限制。如果您不是基于大型数组或地图字段进行查询,则应将其从索引中排除。
但是如何?控制台只允许我设置单个集合名称和单个字段路径,并且不接受斜杠:
我尝试了其他组合,但/在Collection ID或 中都不被接受Field path,并且使用.,虽然没有明确禁止,但在尝试保存豁免时会导致一般错误。我也不确定是否*允许。
与这个问题略有关系,但不一样。
在 Arch Linux 上使用 clang 7.0.1。我喜欢干净的代码,所以我想启用所有警告并将它们视为错误。
问题是我的构建中有一些自动生成的文件,这些文件并非没有警告,例如:
生成/foo.h
inline void foo(int unused) { // warning: unused parameter 'unused'
}
Run Code Online (Sandbox Code Playgroud)
生成/foo.cc
#include "foo.h"
// There is actual code here, but it doesn't matter.
Run Code Online (Sandbox Code Playgroud)
由于这些文件是由第三方工具生成的,我无法轻易修改它们,所以我使用-isystem抑制generated目录中的所有警告。
我还有一个依赖于生成的主文件:
主文件
#include "foo.h"
int main() {
foo(42);
}
Run Code Online (Sandbox Code Playgroud)
使用 gcc,即使启用了所有警告,我也可以很好地编译它。
$ g++ -Wall -Wextra -pedantic -Werror -isystem generated -omain main.cc generated/foo.cc
Run Code Online (Sandbox Code Playgroud)
但是,使用 clang,它无法编译generated/foo.cc:
$ clang++ -Wall -Wextra -pedantic -Werror -isystem generated -omain main.cc generated/foo.cc
In file included …Run Code Online (Sandbox Code Playgroud) 根据文档,我希望在编码 JSON 时JSON_UNESCAPED_LINE_TERMINATORS保留\n未转义的换行符 ( ) 字符,以便保留实际的换行符:
JSON_UNESCAPED_LINE_TERMINATORS(整数)行终止符在提供
时保持未转义。JSON_UNESCAPED_UNICODE它使用与 PHP 7.1 之前相同的行为,但没有此常量。从 PHP 7.1.0 开始可用。
最小的例子:
$ php -r 'echo json_encode(["foo" => "bar\nbaz"], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_LINE_TERMINATORS) . "\n";'
{"foo":"bar\nbaz"}
Run Code Online (Sandbox Code Playgroud)
我期望:
{"foo":"bar
baz"}
Run Code Online (Sandbox Code Playgroud)
(请注意,这是有效的 JSON;仅\且" 必须在字符串中转义。)
为什么这个选项没有按预期工作?
我大致有这个代码:
ExecutorService threader = Executors.newFixedThreadPool(queue.size());
List futures = threader.invokeAll(queue);
Run Code Online (Sandbox Code Playgroud)
我调试了这个,并且在队列中的所有线程都完成之前,invokeAll似乎没有返回.发生这种情况的任何原因.
再一次,我希望C++有更强的typedefs:
#include <vector>
template<typename T>
struct A {
typedef std::vector<T> List;
};
template<typename T>
void processList(typename A<T>::List list) {
// ...
}
int main() {
A<int>::List list;
processList<int>(list); // This works.
processList(list); // This doesn't.
}
Run Code Online (Sandbox Code Playgroud)
显然,编译器看作list是a std::vector<int>而不是a A<int>::List,因此它无法与A<T>::List预期的匹配.
在实际情况中,它是一个较长的类型名称,经常重复,这是一个麻烦.除了让processList接受之外vector,有没有办法让模板类型推断为我工作?
给定color = ["red","blue","green","yellow","purple","orange","white","black"]生成并打印50种随机颜色的列表.您将需要使用随机模块来获取随机数.使用范围和地图生成所需的数字量.然后使用map将数字转换为颜色.打印结果.
这是一个我已经给出的问题,到目前为止这是我的代码
colour = [ "red", "blue", "green", "yellow", "purple", "orange", "white", "black" ]
number=random.randint(1,9)
number.range(50)
Run Code Online (Sandbox Code Playgroud)
我假设这个变量在1-9之间选择随机数,然后生成其中的50个?我现在需要一些方法将数字与颜色联系起来..我知道这个问题很模糊,但如果有人能指出我正确的方向,那就太棒了!