티스토리 뷰
foo(std::unique_ptr<A>(new A), std::unique_ptr<B>(new B));
modern에서 make_shared, make_unique 써야한는 이유로 나온 예제임.
최신 스펙에서는 앞에거 나뒤에거든 하나 다하고 나머지로 간다는 것 같음
In other words, function executions do not interleave with each other.
하지만, vc는 아직 미지원
https://blogs.msdn.microsoft.com/vcblog/2017/05/10/c17-features-in-vs-2017-3/
Refining expression evaluation order | No | P0145R3
new B, new A 하고 unique 생성자 호출함
마찬가지로, The c++ 4th
std::string s = "but I have heard it works even if you don't believe in it"
s.replace(0, 4, "").replace(s.find("even"), 4, "only")
.replace(s.find(" don't"), 6, "");
예제 역시, find(don't), find("even") 한다음, replace는 앞에서 뒤로 진행
괄호는 자체로 좀 더러운데
https://blog.codeisc.com/2017/12/26/cpp-comma-operator-introduction.html
template<class T, class Compare>
constexpr const T& clamp( const T& v, const T& lo, const T& hi, Compare comp )
{
return assert( !comp(hi, lo) ),
comp(v, lo) ? lo : comp(hi, v) ? hi : v;
}
우선순위에 따라 대입 등에서 앞에거와 먼저 결합하는 현상이 모이지만
괄호 내에서는 순서대로가 보장되는 듯함; 스펙에 대한 언급이 없기에
그냥 믿기엔 위험하지만, 대강 되는 걸로
'Game > 작업일지' 카테고리의 다른 글
Vulkan 2번째 mesh shader (0) | 2018.11.21 |
---|---|
Vulkan first attempt (0) | 2018.11.16 |
Vulkan, DirectX12 (0) | 2018.11.12 |
Ray-MMD's Water, Noise, fbm (0) | 2018.11.12 |
RTX 구현 및 응용 (0) | 2018.11.08 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크