草庐IT

compile-time-constant

全部标签

OpenKruiseGame × KubeSphere 联合发布游戏服运维控制台,推动云原生游戏落地

作者:云原生游戏社区近日,云原生游戏开源社区旗下OpenKruiseGame(以下简称:OKG)基于KubeSphere4.0LuBan架构开发的游戏服运维控制台OKGDashboard正式发布!现已上架KubeSphereMarketplace云原生应用扩展市场,支持免费使用。关于OpenKruiseGame(OKG)OpenKruiseGame(OKG)是CloudNativeGame社区联合阿里云、灵犀互娱等企业,将游戏服云原生化场景下的通用能力进行抽象后开源的项目,旨在解决游戏容器化过程中游戏业务、运维管理与云原生基础设施的感知与融合。OpenKruiseGame(OKG)OnKube

c++ - 解析 yyyy-MM-dd HH :mm:ss date time string?

我有一个来自mysql的日期时间。我需要提取每个部分:intyear;intmonth;intday;inthour;intmin;intsec;例子:2014-06-1020:05:57对于每个组件,是否有比通过stringstream运行它更简单的方法?(请不要使用boost或c++11解决方案)。谢谢 最佳答案 sscanf()可能是最直接的选择。它是一个C库函数,因此纯粹主义者可能不赞成它。这是一个例子:intyear;intmonth;intday;inthour;intmin;intsec;constchar*str="

c++ - 如何使用 boost::date_time 读取 ISO 时区?

令我惊讶的是,boost::date_time似乎可以写入它无法读取的日期/时间字符串。考虑以下示例代码:#include#include#includeclassPointTime:publicboost::local_time::local_date_time{typedefboost::local_time::local_time_input_facetinput_facet_t;typedefboost::local_time::local_time_facetoutput_face_t;public:staticinput_facet_tconsts_input_facet;

c++ - CMake 测试 : was a library compiled/linked against libc++ or libstd++?

我正在使用cmake来管理我使用第三方库的项目。此库可能已针对libc++或libstd++(取决于版本)进行编译/链接。我知道如何告诉cmake将我的项目编译/链接到libc++或libstdc++,但我不知道如何检查我正在使用的库是否是根据libc++或libstd++编译/链接的。有任何cmake命令可以检查吗? 最佳答案 对于共享库,您可以使用GetPrerequisites用于测试库是否依赖于libstc++或libc++的标准模块。例如,以下代码测试boost的program_options库是否针对libstc++或l

c++ - 对于 Cmake,您可以使用 `add_compiler_flags()` 命令修改发布/调试编译器标志吗?

在add_compile_options()的手册页中,我没有看到任何关于如何修改发布/调试编译器标志的提及。您可以使用add_compiler_options()修改发布/调试编译器标志吗?如果是,如何?如果不是,推荐的规范方法是修改therelease/debugcmakevariables[1]asdescribedhere吗?[1]即设置cmake变量CMAKE__FLAGS_(对于langc/c++它将是:CMAKE_CXX_FLAGS_RELEASE、CMAKE_CXX_FLAGS_DEBUG、CMAKE_C_FLAGS_RELEASE、CMAKE_C_FLAGS_DEBU

c++ - 为什么在增加 -fconstexpr-steps 后无法解析常量表达式?

以下面的constexpr为例:#includeconstexprintfib(constinti){if(i==0)return0;if(i==1)return1;returnfib(i-1)+fib(i-2);}intmain(){std::cout尽管是constexpr,但它不会在编译时求值。我学到的执行编译时评估的技巧如下:#include#include#defineCOMPILATION_EVAL(e)(std::integral_constant::value)constexprintfib(constinti){if(i==0)return0;if(i==1)retu

c++ - 模板实例化失败 : compiler choosing improper overload function

我对模板并不陌生,但我遇到了一个相当奇怪的问题,我需要将模板类型分离到它的组件中,以用于我正在处理的数据序列化程序。这很难解释,所以我已经证明了。这是我简化的示例问题,example.cpp。templatevoidfoo(T&arg){}templatevoidfoo(T&arg){}intmain(intargc,char*argv[]){foo(argc);return0;}我得到一个错误,然后是一个警告,这似乎表明它正在尝试实例化两个函数,但只有其中一个是合适的。$g++-Wall-Wexample.cppexample.cpp:2:43:error:‘T’isnotatemp

c++ - llvm clang 2.6 : "not using the clang compiler for C++ inputs "

LLVM2.6+clang。尝试编译C++文件并得到:clang:warning:notusingtheclangcompilerforC++inputs如何在C++模式下启动clang? 最佳答案 我会得到中继代码。自2.6以来,C++支持有了很大改进。tools/clang/tools/driver中的clang驱动程序Makefile使用CLANG_IS_PRODUCTION定义来控制C++是打开还是关闭。CLANG_IS_PRODUCTION表示C++关闭。主干构建的默认值不是CLANG_IS_PRODUCTION(即开发构

c++ - GNU 编译器 vs. Visual Studio 在数组上分配 w/Length Constant w/in a Scope

我知道如果你在c/c++中设置一个动态值,你不能在括号内使用该值来分配一个数组(这会使它成为所谓的可变长度数组(VLA),其中currentC++standard不支持)...即见:C++:VariableLengthArrayhttp://en.wikipedia.org/wiki/Variable-length_array我不太明白(而且我在这里没有看到确切地问到的)是为什么GNUc/c++编译器(gcc、g++)没问题使用基于整数值的动态分配(据我所知),只要该值是数组分配范围内的常量,但VisualStudio不支持这一点并且将拒绝编译代码,吐出错误。例如在g++中voidFo

c++继承私有(private)复制构造函数: how doesn't this yield a compile time error?

在C++中,如果我们有这个类classUncopyable{public:Uncopyable(){}~Uncopyable(){}private:Uncopyable(constUncopyable&);Uncopyable&operator=(constUncopyable&);};然后我们有一个派生类classDervied:privateUncopyable{};我的问题是:当编译器在派生类中生成默认的复制构造函数和赋值运算符时,为什么这不会生成编译时错误?生成的代码不会尝试访问基类私有(private)成员吗? 最佳答案