小编The*_*Bat的帖子

如何使用CMake为特定构建配置中的特定目标设置特定的编译器标志?

我有一个CMakeLists,我想使用C运行时的动态版本和使用静态版本的一些其他目标来构建一些目标.

因为需要为每个目标设置,所以默认的设置方法CMAKE_CXX_FLAGS_<Config>不起作用; 这覆盖了所有目标.

为此,我尝试了以下内容:

# @fn       set_target_dynamic_crt
# @brief    Sets the given target to use the dynamic version of the CRT (/MD or
#           /MDd)
# @param    ...  A list of targets to which this setting should be applied.
function( set_target_dynamic_crt )
    if ( MSVC )
        message (WARNING ${CMAKE_BUILD_TYPE})
        if (CMAKE_BUILD_TYPE STREQUAL "Debug")
            set_target_properties ( ${ARGN} PROPERTIES COMPILE_FLAGS "/MDd" )
        else()
            set_target_properties ( ${ARGN} PROPERTIES COMPILE_FLAGS "/MD" )
        endif()
    endif()
endfunction()
Run Code Online (Sandbox Code Playgroud)

但是,这总是选择发布版本(/MD),当我查询构建类型(message上面的调用)时,我得到空字符串.(我怀疑这是因为我使用的是Visual Studio生成器;我看过不止一个引用CMAKE_BUILD_TYPE …

c++ cmake visual-c++

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

php mail() 打印神秘错误

我正在尝试在 PHP 中使用邮件功能,它只是在错误日志中产生了这个神秘的错误:

sh: 1: -t: not found
Run Code Online (Sandbox Code Playgroud)

我已经安装了 sendmail 和 mailutils,并在 php.ini 中设置了 sendmail 路径。

我看过这个,我在那里尝试了建议的修复,没有任何变化。

什么可能导致这个问题?

php email sendmail

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

使用 foreach 循环连续迭代两个结构的简单方法

有没有一种简单的方法可以在 c++17 中实现这种设计模式?

std::set<uint32_t> first;
std::set<uint32_t> second;

for (uint32_t number : JoinIterator<uint32_t>(first, second)) {
   <DO SOMETHING WITH number>
}
Run Code Online (Sandbox Code Playgroud)

这将替换以下代码:

std::set<uint32_t> first;
std::set<uint32_t> second;

for (uint32_t number : first) {
   <DO SOMETHING WITH number>
}

for (uint32_t number : second) {
   <DO SOMETHING WITH number>
}
Run Code Online (Sandbox Code Playgroud)

我发现的所有搜索结果都是关于并行循环遍历两个结构,而不是连续循环遍历结构。

c++ iterator c++11 c++17

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

jquery隐藏然后显示后,width:auto元素的宽度比正常小

我正在尝试显示信息列表,并且它可以正常工作,但是当我隐藏包含该列表的 div 然后再次显示它时,具有“width: auto”样式的元素的宽度将被重新调整大小,并且新尺寸太小:

隐藏前:

在此输入图像描述

隐藏后:

在此输入图像描述

我的 php 生成元素如下所示:

<div displayitem='true'>
    <table>
        <?php
            foreach($aExistingChangeDetailsData['customers'] as $aCustomer){
                ?><tr><td><li style='width:auto;'><?php echo $aCustomer['sCustomerName']; ?></li></td></tr><?php
            }
        ?>
    </table>
</div>
Run Code Online (Sandbox Code Playgroud)

我的 jquery 很简单:

function expandSection() {
    $("div.cd-content").show("slow");
}

function collapseSection() {
    $("div.cd-content").hide("slow");
}
Run Code Online (Sandbox Code Playgroud)

我猜测问题是由于幻灯片动画的调整大小性质造成的,是否有任何简单的方法可以在隐藏后保持 width:auto 元素的宽度,以便将它们恢复到正确的大小?

编辑:似乎每个元素的宽度都减少了 5。

html javascript css jquery

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

默认构造函数的C ++歧义。还有什么?

我不确定我什至需要使用哪些搜索词来找到该问题的答案,因此,如果重复出现该问题,恕我抱歉。基本上,为什么要编译?

struct A {                                                                                                                                                                                                                                                                                                                   
    A(){};                                                                                                                                                                                                                                                                                                                   
    A(const char*){};                                                                                                                                                                                                                                                                                                        
};                                                                                                                                                                                                                                                                                                                           

int main() {                                                                                                                                                                                                                                                                                                                 
    //const char* b = "what is going on?";                                                                                                                                                                                                                                                                                                  
    A(b);                                                                                                                                                                                                                                                                                                                    
    return 0;                                                                                                                                                                                                                                                                                                                
}
Run Code Online (Sandbox Code Playgroud)

但这不是吗?

struct A {                                                                                                                                                                                                                                                                                                                   
    A(){};                                                                                                                                                                                                                                                                                                                   
    A(const char*){};                                                                                                                                                                                                                                                                                                        
};                                                                                                                                                                                                                                                                                                                           

int main() {                                                                                                                                                                                                                                                                                                                 
    const char* b = "what is going on?";                                                                                                                                                                                                                                                                                                  
    A(b);                                                                                                                                                                                                                                                                                                                    
    return 0;                                                                                                                                                                                                                                                                                                                
}

test.cpp: In function ‘int main()’:
test.cpp:8: error: conflicting declaration ‘A b’
test.cpp:7: error: ‘b’ has a previous declaration as ‘const char* b’
Run Code Online (Sandbox Code Playgroud)

C ++的什么功能导致这种歧义?这样做的主要目的是在类型A的堆栈上创建一个匿名变量。类似于A a(b);,但未命名a。

c++ constructor

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

两个单独的键映射到std :: map中的单个条目

我正在研究一段代码,其目标是成为一个快速的"搜索引擎".我在一个文件中有条目,需要在读取整个文件后进行搜索.它们需要可以通过条目的名称进行搜索,并且它从文件的开头偏移.我的问题是内存使用问题,因为有数百万条目.目前我使用两个单独的std :: maps来存储数据,以便可以指定任一搜索项.这导致数据的双重存储,这正是我试图减少的.

我已经使用valgrind massif来发现内存使用的主要部分是条目的双重存储.

目前的储存方法:

struct entry {
    std::string name;
    uint16_t offset;
    uint16_t size;
    bool isConst;
};

nameSearchMap.insert(std::pair<std::string, entry>(s_entry.name, e_entry));
offsetSearchMap.insert(std::pair<uint16_t, SymInfo>(s_entry.offset, s_entry));
Run Code Online (Sandbox Code Playgroud)

有没有办法可以制作一个可以通过任何一种键搜索的地图?

c++ stdmap

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

标签 统计

c++ ×4

c++11 ×1

c++17 ×1

cmake ×1

constructor ×1

css ×1

email ×1

html ×1

iterator ×1

javascript ×1

jquery ×1

php ×1

sendmail ×1

stdmap ×1

visual-c++ ×1