我注意到,如果我做vec[0] = 1了一个新的空std::vector<int>,vec.size()遗骸0.
但是我仍然vec[0]可以检索我的1.
这是否属于未定义的行为?这里发生了什么?这只是写入1保留的内存空间,我应该期待这会在我脸上爆炸,对吧?
我在外部构建一些使用libclang静态库的项目.
链接失败如下:
ld: unknown option: --start-group
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
我需要使用它的原因是因为循环依赖(或者事实证明,我猜是因为不知道正确的库顺序).
到目前为止,我不得不求助于-Wl,--{start,end}-group取出makefile,查看未定义的符号错误列表,找到包含它们的库nm,并将它们手动附加到库列表中(因此它们在库列表中不止一次出现) .
我最近一直在学习很多关于网络技术的知识,我想把一个整洁的小网站放在一起玩html,css,javascript,flash,以及你有什么.
我知道就Web浏览器而言,我需要做的就是使用HTTP over TCP从我的服务器发送文本文件(通常是HTML).
我现在已经阅读了几个Rails教程,但是我很难解决这些组件如何协同工作并理解组件如何协同工作,即使我可以通过盲目地按照上述教程来完成工作.
我想我理解MVC的概念.显然,应用程序的业务模型与视图实现等分开是有意义的.当然,这很好.据我所知,RoR需要(?)一个数据库.当然,当我的网站发展到需要跟踪客户和处理数据的程度时,我会希望这样.
但是我在哪里可以获得实际功能?在哪里指定服务器如何响应来自浏览器的请求?这不应该是直截了当的吗?我是否需要设置数据库才能获得"hello world"页面?
我认为可能发生的事情是Rails旨在做一些我不需要的事情(但是?).它为我做了许多我不理解的事情,为了让我感到舒服,我必须深入研究很多材料才能弄明白.
让我到这一步的是,我正在寻找我正在玩这个小服务器之后的"下一步":
require 'socket'
server = TCPServer.open(8080)
loop {
Thread.start(server.accept) do |client|
client.puts(Time.now.ctime) # server sends dynamic page consisting of current time
client.flush
while (str = client.gets) do
puts "recvd >> "+str # show what server gets from client
if str.chop.length == 0 then break end # detect end of transmission
end
puts "done"
client.close
end
}
Run Code Online (Sandbox Code Playgroud)
这一小段代码超出了我需要做的一半.我被困在一些非常愚蠢的事情上.我仍然不知道如何将文件放在磁盘上并将其发送到客户端.我想我会打开一个流到所请求的文件并将其传递给套接字......不知道如何在ruby中执行此操作.所以我想,嘿,也许Rails会为我做的.
现在我遵循一堆指示,最后让服务器在mongrel上运行,我试试这个:ruby script\generate controller MyTest当我在浏览器中打开它时仍然会出现"路由错误".我在cmdline上得到一个巨大的丑陋堆栈跟踪.拧这个!
显然,我应该参加一个课程,告诉我如何使用Rails,更重要的是,它是否对我的目的来说是过度的.那么......我应该继续努力解决这个问题吗?如果是这样,有人可以给我一个很好的教程,或者向我解释为什么我看到的教程没有帮助我?
我应该尝试使用EventMachine来制作我的服务器吗?我只是想制作一个简单的快速Web服务器.
谢谢阅读.:)
在我的渲染器中,我在多重采样的FBO上生成一个消除锯齿的场景,该场景被blit到FBO,其颜色附件是纹理.然后在渲染到帧缓冲区期间读取纹理.
我想更新它,以便我得到伽马校正结果.使用sRGB帧缓冲区的好处是,通过将非线性sRGB值直接存储在帧缓冲区中,它可以让我有更好的色彩精度.
我不确定的是我应该做些什么改变才能得到这个,以及不同设置会改变什么.
它看起来像扩展ARB_framebuffer_sRGB只是处理与sRGB帧缓冲区的读取和混合操作.在我的情况,我需要使用一个纹理指定的sRGB表示类型,这意味着我可以用扩展EXT_texture_sRGB ...使用线性纹理格式将禁用sRGB的翻译.
编辑:但我刚看到这个:
3)支持sRGB帧缓冲更新和混合的能力是否应该是帧缓冲的属性?
决议:是的.它应该是一些像素格式(很可能只是RGB8和RGBA8)的功能,可以启用sRGB混合.
这允许实现简单地将现有的RGB8和RGBA8像素格式标记为支持sRGB混合,然后仅为这些格式提供sRGB更新和混合的功能.
现在我不太确定要为纹理的像素格式指定什么.
好的,那渲染缓冲区怎么样?ARB_framebuffer_sRGB doc没有提及有关renderbuffers的任何内容.是否可以使用glRenderbufferStorageMultisamplesRGB格式,因此我可以启用sRGB存储混合?
另外,在指定内部格式时GL_SRGB_ALPHA和之间有什么区别?GL_SRGB8_ALPHA8glTexImage2D
我有一个函数,它接受一个int *并修改传入的数组。我提前知道它将访问多少个元素。让我们说这就是m价值观。
如果我调用reserve(m)avector<int>然后将指针发送data()到函数会发生什么?
我的猜测是,如果我随后从指针访问数据,就好像它是一个数组一样,这样做可能会奏效,但是如果我尝试使用向量operator []的大小从向量中检索此数据,则不会更新,我会有问题。所以我应该只是resize(m)用来做这个。
我在引号中说"分支",因为我的意思是数据结构中的分支,图形拓扑意义,而不是git分支,它类似于特定提交的句柄.
我在主人,我创建了一个新的分支,我通过编辑一个早期的提交做出了提交:(字母顺序=按时间顺序,基本上我发现错误最初是在提交C中引入的)
A -- B -- C -- D <-- master
\
E <-- bugfix_branch
Run Code Online (Sandbox Code Playgroud)
我在master分支上,我看着小树图gitk,它没有显示我提交E.同样,如果我结帐bugfix_branch分支,看那里它只显示我在提交A,B和E(所以我不看不到C或D).
我想查看我的整个git历史的更完整的视图,而不必首先推送到bitbucket或github尝试查看那里的图表.是否有某种方式来查看所有提交并查看哪些提交是其中的子项?
我正在构建一个数据结构,每2或3位设置为64位整数.
如果我可以交替地在这个结构中存储指针(当它们是树中的终端节点,但这不相关时)对我来说会很方便.
出于我的表示(保证设置最高或第二高位)的目的,如果可以假设指针永远不会设置其最高的两位,即此断言成立:
void *sixty_four_bit_pointer = a_valid_address();
bool always_zero = 0xC000000000000000 & sixty_four_bit_pointer;
Run Code Online (Sandbox Code Playgroud)
那我就可以做到这一招!
我正在完成本教程:http://moxleystratton.com/clojure/clojure-tutorial-for-the-non-lisp-programmer
并遇到了这个片段:
user=> (loop [i 0]
(when (< i 5)
(println "i:" i)
(recur (inc i))))
i: 0
i: 1
i: 2
i: 3
i: 4
nil
Run Code Online (Sandbox Code Playgroud)
对我的翻译很有用!
? lein repl
nREPL server started on port 50974
REPL-y 0.1.10
Clojure 1.5.1
Run Code Online (Sandbox Code Playgroud)
现在我正在寻找一些关于什么的文档recur.
它不在这里! http://clojure.github.io/clojure/api-index.html
我花了一段时间才发现它是一个"特殊形式",因此在本页中进行了描述.
那里有一个具有单一连贯索引的汇编吗?
这里的用例是我想*在一个循环中一次采用一组文件,例如和它们一起构建arglists N.例如,
$ ls
a.jpg
b.jpg
v.jpg
z.jpg
123.jpg
1234.jpg
Run Code Online (Sandbox Code Playgroud)
N这里是二,我想运行例如command a.jpg b.jpg,command v.jpg, z.jpg等等.
我该怎么做?
for file in *; do
command [???]
done
Run Code Online (Sandbox Code Playgroud)
它不必使用for循环.希望有一个我不知道的UNIX实用程序,它可以重新安排arg列表.也许我得做一些花哨tr和IFS.
如果我的文件以数字命名,或者我只是想使用数字而不是在glob-expanded文件上操作(这个例子有N= 3),我就可以这样做:
for number in {0..10..3}; do
echo $number $((number + 1)) $((number + 2))
done
Run Code Online (Sandbox Code Playgroud)
这会产生......
0 1 2
3 4 5
6 7 8
9 10 11
Run Code Online (Sandbox Code Playgroud) 这是我正在编辑的配置的摘录。这是在[alias]my的部分内.gitconfig:
ignored = !git ls-files -v | grep "^S"
status-with-ignored = "!f() { git status; ignored=$(git ignored | cut -d ' ' -f 2 | sed -e s/^/z/ -e s/$/z/); [ -n \"$ignored\" ] && echo \"git skip-worktree (ignored):\n$ignored\"; };f"
Run Code Online (Sandbox Code Playgroud)
我基本上是在尝试将 的输出着色,git ignored因为我将其粘贴到 git status 的末尾。我上面显示的工作正常,但fatal: bad config file line 18 in ~/.gitconfig如果我的sed命令中有任何括号(这对于构建正则表达式非常有用),则它不起作用 ( )。
例如,我希望能够写一些带有括号的东西,例如sed s/^(.*)$/z\1z/代替sed -e s/^/z/ -e s/$/z/.
因为我上色的东西,我实际上是使用\x1b[31m,\x1b[m等等,但你的想法。 …