NVIDIA / NVIDIA/cccl

[BUG]: cuda::std::extents::extent does not work in constexpr context if there is at least one dynamic_extent present

Open
#522 4 comments 0 reactions 1 assignee Claimed by @miscco View on GitHub
Dominant language
C++
Stars
2.5k
Forks
487
Avg merge
2d 7h
Merged PRs (30d)
296

Description

### Is this a duplicate?

- [X] I confirmed there appear to be no [duplicate issues](https://github.com/NVIDIA/cccl/issues) for this bug and that I agree to the [Code of Conduct](CODE_OF_CONDUCT.md)

### Type of Bug

Compile-time Error

### Component

libcu++

### Describe the bug

It's not possible to use extents::extent in for eg. static_assert even when statically known extent is queried if extents contain at least one dynamic_extent. If all extents are statically known, then extent works in constexpr contexts.

### How to Reproduce

https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIAruiakl9ZATwDKjdAGFUtEywYgATKUcAZPAZMADl3ACNMYhAADlIAB1QFQjsGFzcPPQSk2wEAoNCWCKiuS0xrHIYhAiZiAjT3Tx8rTBsUqpqCPJDwyJjLatr6jJKFAc7A7sLergBKS1QTYmR2DgBSLwBmQOQ3LABqVY2nU3MAelH0U5Z0BTjDQ%2BxVjQBBJ%2BfAgj2WJkCIGYOAOwAITeezBexOTBAIAu0MwqgIjAICkOTg%2BpD2JQhZihMII6Gh6AAnswWHhkAB9eGIwQYjYPPbwiBeGaHEEvcF7UZMWyUpgKJS1CDwgB01KREA0/0OABFZZjWRt2c9OZDobCQOLBCijujMRifHt6RtsIzVF42aDwdzeRT%2BYKCMLzWKERKpQcNnLPQrLS9VgCZRw5rROABWXieDhaUioThOOQylVOdYgrxArkLJaYA6bHikAiaINzADWIFDAE4ReWAGxecteaLVjYA2sAyQbUP6TiSCOFmOcXgKEAafOFuZwWAwRAoVAsOJ0SLkShoOcLqIMABuyGQXC8XhMJSwG/JmAAanhMAB3ADycUYfZotERxCHEDCfbCgRqRI/X%2BIROvMJtBaAtuF4Fc2EEa8GFoH8o14LAwhMYAnDEWghzA0gsG%2BIxxHgrC8GIEC8A3TAMOjeEWhMRE%2Bw%2BMo%2B1oPAwmIb8XCwPsCGIPAWE4Hg5ioAxgAUc8r1ve9MP4QQRDEdgpBkQRFBUdR8N0EoDCMFAcX0Jih0gOZUDiCoMN4VBSOILisF0v5SnKFIHAYZxXAaPR/AmAoikyRJkgEIZPBKLJvIYLp3OmGziIEdpBic4YwtaCKxmCnpin6DpfL0blakSqZijmBRM2WCRgzDXt8NjDg9mCU8nCcTEvBFOquD2CBcEIEgcw2WZeFArQZhLMsRxDDge1IHiNg2EUxsmqbpurUhI2jMrB2HUd4PHKcICQBYCDiail2FfAiAsvRJOEURxDkk7FLUPtVNIS8WLiMcuw4cM5r7Mrr2onbPlQKgKqqmrd3qkVGogFxV3oYh2s6laermBBMCYLAomswbhtG8bpqxybZvmkyB0sZbuqDUgJ2nI8Tz2ld50h4JWBWSrqtq4G8wpgqOF4TADpIPACRKE7pPO6RLqUa6VPSspws8YUHLSkpXPyJLPOyFI5fiLyKiyjyRkluLKjGNXmj1yLxkV7L0oN6K/JSzK3KV2Z8yIzBeeHIqXpKhbOBlTBj2WPYRMvSJ/qZoGGqalrDuhjFwZpoP1g6mYurHN30ZAMaJuxrG3tKgmhxHYnetIUtJA0EUNGbDQAS4DZa2bLxQ2rTtBo2D38Y52Gi2erxW/7duC7mMyknsSQgA

### Expected behavior

Both static asserts from the godbolt link should compile correctly, presence of dynamic_extent should not affect the ability to query statically known extents at compile time.

### Reproduction link

https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIAruiakl9ZATwDKjdAGFUtEywYgATKUcAZPAZMADl3ACNMYhAADlIAB1QFQjsGFzcPPQSk2wEAoNCWCKiuS0xrHIYhAiZiAjT3Tx8rTBsUqpqCPJDwyJjLatr6jJKFAc7A7sLergBKS1QTYmR2DgBSLwBmQOQ3LABqVY2nU3MAelH0U5Z0BTjDQ%2BxVjQBBJ%2BfAgj2WJkCIGYOAOwAITeezBexOTBAIAu0MwqgIjAICkOTg%2BpD2JQhZihMII6Gh6AAnswWHhkAB9eGIwQYjYPPbwiBeGaHEEvcF7UZMWyUpgKJS1CDwgB01KREA0/0OABFZZjWRt2c9OZDobCQOLBCijujMRifHt6RtsIzVF42aDwdzeRT%2BYKCMLzWKERKpQcNnLPQrLS9VgCZRw5rROABWXieDhaUioThOOQylVOdYgrxArkLJaYA6bHikAiaINzADWIFDAE4ReWAGxecteaLVjYA2sAyQbUP6TiSCOFmOcXgKEAafOFuZwWAwRAoVAsOJ0SLkShoOcLqIMABuyGQXC8XhMJSwG/JmAAanhMAB3ADycUYfZotERxCHEDCfbCgRqRI/X%2BIROvMJtBaAtuF4Fc2EEa8GFoH8o14LAwhMYAnDEWghzA0gsG%2BIxxHgrC8GIEC8A3TAMOjeEWhMRE%2Bw%2BMo%2B1oPAwmIb8XCwPsCGIPAWE4Hg5ioAxgAUc8r1ve9MP4QQRDEdgpBkQRFBUdR8N0EoDCMFAcX0Jih0gOZUDiCoMN4VBSOILisF0v5SnKFIHAYZxXAaPR/AmAoikyRJkgEIZPBKLJvIYLp3OmGziIEdpBic4YwtaCKxmCnpin6DpfL0blakSqZijmBRM2WCRgzDXt8NjDg9mCU8nCcTEvBFOquD2CBcEIEgcw2WZeFArQZhLMsRxDDge1IHiNg2EUxsmqbpurUhI2jMrB2HUd4PHKcICQBYCDiail2FfAiAsvRJOEURxDkk7FLUPtVNIS8WLiMcuw4cM5r7Mrr2onbPlQKgKqqmrd3qkVGogFxV3oYh2s6laermBBMCYLAomswbhtG8bpqxybZvmkyB0sZbuqDUgJ2nI8Tz2ld50h4JWBWSrqtq4G8wpgqOF4TADpIPACRKE7pPO6RLqUa6VPSspws8YUHLSkpXPyJLPOyFI5fiLyKiyjyRkluLKjGNXmj1yLxkV7L0oN6K/JSzK3KV2Z8yIzBeeHIqXpKhbOBlTBj2WPYRMvSJ/qZoGGqalrDuhjFwZpoP1g6mYurHN30ZAMaJuxrG3tKgmhxHYnetIUtJA0EUNGbDQAS4DZa2bLxQ2rTtBo2D38Y52Gi2erxW/7duC7mMyknsSQgA

### Operating System

N/A

### nvidia-smi output

N/A

### NVCC version

12.2.1

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.