小编Jon*_*set的帖子

隐藏元素,但显示CSS生成的内容

有没有办法隐藏元素的内容,但保持其:before内容可见?说我有以下代码:

HTML:

<span class="addbefore hidetext">You are here</span>
Run Code Online (Sandbox Code Playgroud)

CSS:

.addbefore:before {
    content: "Show this";
}
.hidetext {
    // What do I do here to hide the content without hiding the :before content?
}
Run Code Online (Sandbox Code Playgroud)

我试过了:

  • 使用display: none和设置display: inline:before,但两者都还隐藏
  • 使用width: 0; overflow: hidden;,但是似乎添加了额外的空间(?)
  • 使用颜色:透明;但当然,跨度的内容仍然占用空间
  • 使用text-indent: -....px,但是
    1. 这是搜索引擎所不满意的
    2. 它似乎不适用于span元素(?)

关于我如何做到这一点的任何其他想法?

html css css-selectors

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

在C++中构造hack等价物

结构hack你有一个长度为0的数组作为C90和C99的结构的最后一个成员是众所周知的,并且随着C99中灵活的数组成员的引入,我们甚至得到了使用它的标准化方法[].不幸的是,C++没有提供这样的构造,并且(至少使用Clang 3.4),使用[0]或编译结构或[]将产生编译警告--std=c++11 -pedantic:

$ cat test.cpp 
struct hack {
  char filler;
  int things[0];
};
$ clang++ --std=c++11 -pedantic test.cpp
\test.cpp:3:14: warning: zero size arrays are an extension [-Wzero-length-array]
  int things[0];
Run Code Online (Sandbox Code Playgroud)

和类似的

$ cat test.cpp 
struct fam {
  char filler;
  int things[];
};
$ clang++ --std=c++11 -pedantic test.cpp
\test.cpp:3:7: warning: flexible array members are a C99 feature [-Wc99-extensions]
  int things[];
Run Code Online (Sandbox Code Playgroud)

我的问题是这个; 说我希望有一个包含可变大小数组的结构作为C++中的最后一项.给定支持两者的编译器,做什么是正确的?我应该使用struct hack [0](编译器扩展)还是FAM [](这是C99功能)?据我所知,要么会奏效,但我想弄明白哪个是较小的邪恶?

此外,在人们开始建议int*在结构中保留一个单独分配的内存之前,这不是一个令人满意的答案.我想分配一块内存来保存我的struct和数组元素.使用std :: vector也属于同一类别.如果你想知道为什么我不想使用指针,那么 …

c++ arrays struct flexible-array-member c++11

22
推荐指数
3
解决办法
2783
查看次数

使用GTK解决问题

我正在使用GTK 构建一个相当简单的C应用程序,但必须执行一些阻止IO,这将触发GUI的更新.为了做到这一点,我在此pthread之前开始一个新的权利gtk_main():

/* global variables */
GMainContext *mainc;

/* local variables */
FILE *fifo;
pthread_t reader;

/* main() */
mainc = g_main_context_default();
pthread_create(&reader, NULL, watch_fifo, argv[argc-1]);
gtk_main();
Run Code Online (Sandbox Code Playgroud)

pthread读取一些数据时,它会更新GUI,如下所示:

g_main_context_invoke(mainc, set_icon, param);
Run Code Online (Sandbox Code Playgroud)

哪里set_icon

gboolean set_icon(gpointer data)
{
    char *p = (char*)data;
    gtk_status_icon_set_from_icon_name(icon, p);
    return FALSE;
}
Run Code Online (Sandbox Code Playgroud)

这一切都在大部分时间都有效,但我不时地得到这个奇怪的错误信息:

[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry …

c gtk multithreading pthreads gtk3

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

无法使用file_get_contents找到包装器"https"

使用https:// urls调用file_get_contents()会出现以下错误:

warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?
Run Code Online (Sandbox Code Playgroud)

我已经阅读了10多个SO问题,所有人都说要启用 extension=php_openssl.dll

我这样做了,我还有问题......

还有什么呢?

php apache https file-get-contents

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

动态#include基于宏定义

我正在编写一个C++应用程序,我想让开发人员在编译时选择用于特定问题的算法.这两种算法都是作为实现通用接口的C++类实现的,并且是相互替代的替代品.它们都有.h和.cpp文件,并且驻留在子目录中(让我们称之为impl/).

在我的Makefile中,我有类似的东西:

...
IMPL = default
...
binary: ... impl/$(IMPL).o
...
impl/%.o: impl/%.cpp impl-interface.h impl/%.h
...
%o: %.cpp ...
    $(CXX) $(CXXFLAGS) -DIMPL=$(IMPL) -c -o $@ $*.cpp
Run Code Online (Sandbox Code Playgroud)

这个想法是用户应该能够输入make binary IMPL=thatimpl.

在任何想要使用用户选择的算法的文件中,我会这样做:

IImpl o = new IMPL();
Run Code Online (Sandbox Code Playgroud)

但是,这要求我包含所选实现的头文件.不幸的是,C++需要#include后跟a "string",a <libfile>.您也可以使用此处建议的宏,但它要求宏的参数为文字字符串.如果我使用:

#define QUOTEME(M)       #M
#define INCLUDE_FILE(M)  QUOTEME(impl/##M##.h)
#include INCLUDE_FILE(IMPL)
Run Code Online (Sandbox Code Playgroud)

编译器将尝试包含文字字符串impl/IMPL.h,而不是扩展IMPL到传递给make编译器的任何内容.

关于如何实现这一点的任何指示都将非常受欢迎!

c++ macros makefile

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

输入矩阵到opencv kmeans聚类

这个问题特定于opencv:opencv文档中给出的kmeans示例有一个双通道矩阵 - 特征向量的每个维度都有一个通道.但是,其他一些例子似乎表明它应该是一个单通道矩阵,沿着列有特征,每个样本有一行.哪个是对的?

如果我有一个5维特征向量,我应该使用的输入矩阵:这一个:

cv::Mat inputSamples(numSamples, 1, CV32FC(numFeatures))
Run Code Online (Sandbox Code Playgroud)

或者这个:

cv::Mat inputSamples(numSamples, numFeatures, CV_32F)
Run Code Online (Sandbox Code Playgroud)

opencv cluster-analysis k-means

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

永远重拍PHONY静态规则目标

我现在已经摸不着头脑了一个小时,谷歌证明其用途有限.我有一个包含图形的报告的Makefile.图形由目录图形/中的.plot文件表示,gnuplot用于从它们生成.tex和.eps文件.然后使用ps2pdf从.eps生成pdf,最后\includereport.tex中的命令将图形.tex包含到文档中,该文档再次包含图形.pdf以将图形放在最终的report.pdf中.

我有一个正确构建所有内容的Makefile,但出于某种原因,每次运行make时都坚持重新生成report.pdf.通过输出读取make -d显示,Make说:"必须重新制作目标mp-int-2.4-ni'." and "Must remake targetmp-int-2.4-i'." 每次运行,但这些都被宣布为PHONY,因此除非他们依赖的东西发生变化,否则不应重新制作.或者至少我这么认为?

有关可能导致此问题的任何想法,以及我如何避免每次都重新制作最终的PDF文件?

Makefile文件

GRAPHS := mp-int-2.4-ni mp-int-2.4-i

.PHONY : $(GRAPHS)
.PRECIOUS : graphs/%.pdf

report.pdf: report.tex $(GRAPHS)
    # ...

$(GRAPHS): %: graphs/%.pdf graphs/%.tex

graphs/%.pdf: graphs/%.eps
    # ...

graphs/%.tex graphs/%.eps: graphs/%.plot
    # ...
Run Code Online (Sandbox Code Playgroud)

make -d 在make之后已经运行了

$ make -d | grep -Ev "Trying|Reject|Avoid|intermediate"
Considering target file `report.pdf'.
  Considering target file `report.tex'.
   Looking for an implicit rule for `report.tex'.
   No implicit rule found for `report.tex'.
   Finished prerequisites of target file …
Run Code Online (Sandbox Code Playgroud)

latex makefile

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

在OpenCL中并行执行许多小矩阵运算

我有一个问题需要我做许多(~4k)小(~3x3)平方Hermitian矩阵的特征分解和矩阵乘法.特别是,我需要每个工作项来执行一个这样的矩阵的特征分解,然后执行两个矩阵乘法.因此,每个线程必须做的工作相当少,并且完整的工作应该是高度可并行化的.

不幸的是,似乎所有可用的OpenCL LAPACK都用于将大矩阵上的操作委托给GPU,而不是用于在OpenCL内核中进行较小的线性代数操作.由于我不想在OpenCL中为任意大小的矩阵实现矩阵乘法和特征分解,我希望这里有人可能知道这个工作适合的库?

我知道OpenCL可能会在某些时候获得内置矩阵运算,因为矩阵类型是保留的,但现在这并没有多大用处.这里有一个类似的问题,从2011年开始,但它只是说要自己动手,所以我希望从那时起情况有所改善.

gpgpu matrix linear-algebra opencl lapack

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