Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix missing namespace name #394

Merged

Conversation

tsnorri
Copy link
Contributor

@tsnorri tsnorri commented Nov 8, 2024

For some reason when using cycle_canceling as part of a larger algorithm, Clang++19 reported that it could not find cycle_canceling_dispatch1. Compiling the example with the same options did work. In any case I think the namespace name should be applied to the call.

@jeremy-murphy
Copy link
Contributor

I agree, thanks for the fix!

@jeremy-murphy jeremy-murphy self-assigned this Nov 10, 2024
@jeremy-murphy
Copy link
Contributor

jeremy-murphy commented Nov 10, 2024

Actually... although on the surface this change looks right, I was expecting the example to have something hacky in it to make it work, but it doesn't. So I would like to know why it doesn't work for you. Or, why it works for the example. It's just slightly too mysterious to leave unanswered.

@tsnorri
Copy link
Contributor Author

tsnorri commented Nov 11, 2024

I’ll see if I can find out the reason.

@tsnorri
Copy link
Contributor Author

tsnorri commented Nov 11, 2024

So I got the syntax tree from Clang and in the case of the example, cycle_canceling_dispatch1 is found via ADL. The exact declaration of the function template specialisation is quite long but the passed adjacency_list has (indirectly) a template parameter whose type is boost::detail::edge_desc_impl. I think this causes boost::detail to be considered when the compiler looks for cycle_canceling_dispatch1.

To me this doesn’t seem to be intentional.

@jeremy-murphy jeremy-murphy merged commit 33b6802 into boostorg:develop Nov 19, 2024
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants