static-cast专题提供static-cast的最新资讯内容,帮你更好的了解static-cast。
考虑以下程序: <pre class="lang-cpp prettyprint-override"><code>#include &lt;iostream&gt; class Pet {}; class Cat: public Pe
我刚刚了解了继承并开始使用强制转换。当我试图了解这个话题时,我发现自己面临着这个我无法解释
给定一个程序 <pre class="lang-cpp prettyprint-override"><code>#include &lt;iostream&gt; using namespace std; int main() {
我遇到了这个问题: <pre><code>#include &lt;iostream&gt; class A{ protected: int a = 0; }; class B : public virtual A{
我是 C++ 的初学者,所以这似乎是一个愚蠢的问题。请幽默我! 我使用了 <code>static_cast&lt;int&gt;(nume
我有一些针对不同目标构建的代码。它还具有一些使用 uint32_t 而不是 size_t 的遗留函数 - 当我想将 size_t
如果可用于此转换(例如,<code>output_dirname = &#34;/home/python/test&#34; output_filename_webm = os.path.join(output_dirname
考虑抽象类 <code>AbstractMap</code> 和它的子类<code>MyMap</code>。执行以下删除操作是否安全?或者,我应该在
编写 C++ 时的常见建议指出,应避免隐式转换,而应使用显式转换。 <pre><code>int x = myUnsignedLongVar; // sh
<strong><em>GCC</em></strong> 在编译以下代码时产生警告: <pre><code>void* const &amp; cast(int* const &amp;ptr) { re
鉴于以下条件: <pre><code>struct A { int a; }; struct B { int b; }; int main() { A a {1}; A* p = &amp;a; </
<pre><code>#include &lt;iostream&gt; using namespace std; int main() { int intVar = 1500000000; //1,500,000,000 int
在 GCC、MVSC、Clang 和 AppleClang 中,下面的代码将编译并始终打印“no”。但是当取消引用 int* 时,我们是
我有一些带有自定义索引 typedef 的库,用于索引到数组中。可以自定义这些库用于这些索引的确切数据
我的问题包含两部分: <ol> <li>函数 <code>static_cast&lt;Т&gt;(arg)</code> 会改变 <code>arg</code> 的内部吗?
我需要取2个无符号8位值并减去它们,然后将该值加到32位累加器中. 8位减法可能会下溢,这没关系(unsigned int underflow是定义的行为,因此没有问题). 我希望static_cast< uint32_t>(foo – bar)应该做我想要的(其中foo和bar都是uint8_t).但看起来这会先抛出它们然后执行32位减法,而我需要它作为8位变量下溢.我知道我可以只修改256,但
我正在研究嵌入式平台(ARM),在处理位模式时必须小心.让我们假装这条线超出了我的影响力: uint8_t foo = 0xCE; // 0b11001110 解释为无符号,这将是206.但实际上它是签名的,因此类似于-50.如何继续使用此值作为签名? int8_t bar = foo; // doesn't work 两者都没有(导致所有输入值的0x10或
我发现自己处于一种我知道什么类型的东西的情况. Type是三个(或更多)继承级别之一.我叫工厂返回B *但是T是一个类型的最高级别(如果我的代码知道它是什么)或第二级别. 无论如何,我在模板中做了一个static_cast是不对的.我的问题是我什么时候可以安全地静态施放?有没有这样的时间?我在这种情况下做到了,因为当我意外地将T作为古怪的东西(已经发生并且)动态转换忽略(并返回null)时,我宁愿
在一个变体类中,我正在处理原始存储是一个char数组: alignas(/* the strictest alignment of all types of the variant */) char storage[/* ... */]; 赋值运算符类似于: template<class X> void operator=(const X &x) { // ...code for cleari
在我提出 here问题之后,我问这个问题. 关键很简单.假设你有两类这样的类: template < class Derived > class Base { ... operator const Derived&() const { return static_cast< const Derived& >(*this); } ... }; class Specialization