# Make size\_of available at compile time

**URL:** <https://internals.rust-lang.org/t/make-size-of-available-at-compile-time/913>\
**Category:** ideas (deprecated)\
**Created:** [November 17, 2014, 11:54pm UTC](https://internals.rust-lang.org/t/make-size-of-available-at-compile-time/913 "2014-11-17T23:54:20Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![rraval](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/rraval/32/148_2.png) [@rraval](https://internals.rust-lang.org/u/rraval)\
**Post date:** [November 17, 2014, 11:54pm UTC](https://internals.rust-lang.org/t/make-size-of-available-at-compile-time/913/1 "2014-11-17T23:54:20Z")

</div>

As @chris-morgan kindly pointed out [on StackOverflow](http://stackoverflow.com/questions/26976104/rust-declare-array-with-constant-expression), `std::mem::size_of()` cannot currently be used as a constant expression. `size_of::<T>()` appears to be evaluated at runtime, which artificially limits the construct in my opinion.

I went searching for historical background and only managed to dig up [a mailing list thread from 2012](https://mail.mozilla.org/pipermail/rust-dev/2012-December/002838.html), which punts the issue as a nice to have.

I’m unsure how to proceed at this point. Would an RFC be the logical next step? Does compile time sizeof jive with Rust philosophy?

---

<div class="post-metadata">

**Author:** ![japaric](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/japaric/32/28_2.png) [@japaric](https://internals.rust-lang.org/u/japaric)\
**Post date:** [November 18, 2014, 12:02am UTC](https://internals.rust-lang.org/t/make-size-of-available-at-compile-time/913/2 "2014-11-18T00:02:07Z")

</div>

This has been proposed as [an RFC](https://github.com/rust-lang/rfcs/pull/253) before, but has been postponed (i.e. to be discussed/implemented after 1.0)

---

<div class="post-metadata">

**Author:** ![rraval](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/rraval/32/148_2.png) [@rraval](https://internals.rust-lang.org/u/rraval)\
**Post date:** [November 18, 2014, 1:04am UTC](https://internals.rust-lang.org/t/make-size-of-available-at-compile-time/913/3 "2014-11-18T01:04:51Z")

</div>

Thanks for the link. I figured it wouldn’t block 1.0 but it’s good to see that compile time sizeof is on the radar.

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/system/32/14092_2.png) [@system](https://internals.rust-lang.org/u/system)\
**Post date:** [March 25, 2019, 8:23am UTC](https://internals.rust-lang.org/t/make-size-of-available-at-compile-time/913/4 "2019-03-25T08:23:16Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
